序列的有关知识

这篇具有很好参考价值的文章主要介绍了序列的有关知识。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 📢博客主页:盾山狂热粉的博客_CSDN博客-C、C++语言,机器视觉领域博主
  • 📢努力努力再努力嗷~~~✨

💡大纲

⭕列表、元组、字符串都是序列,列表是可变序列,元组和字符串是不可变序列

一、跟序列相关的操作符

(一)+(拼接)*(重复)

👉在python中,每一个变量都有三个属性:唯一标志、类型、值

  • 唯一标志:在变量创建后不可修改

 序列的有关知识

  • 对于可变序列:列表来说,在对其进行重复操作后,id值不变
  • 对于不可变序列:元组、字符串来说,重复操作后id值会变化,因为不能对其本身进行直接操作,是创建了一个新的变量

(二)同一性运算符:is is not

👉判断是不是同一对象,对于可变数据类型来说,在python中创建两个相同内容的变量,其id值不同;对于不可变数据类型来说,就算创建了两个相同内容的变量,在python中也只会创建一个地址用来存储该内容

序列的有关知识

(三)包含问题:in not in 

序列的有关知识

(四)删除一个或多个指定对象:del

序列的有关知识

👉在删除连续区域的内容时,切片也可以满足删除的要求,但是对于指定不同位置的删除,切片是做不到的

 序列的有关知识

二、跟序列相关的函数

(一)列表、元组、字符串相互转换

1、可迭代对象转换为列表

list("fishc") # ['f', 'i', 's', 'h', 'c']
list((1,2,3,4,5)) # [1, 2, 3, 4, 5]

2、可迭代对象转换为元组

tuple("fishc") # ('f', 'i', 's', 'h', 'c')
tuple([1,2,3,4,5]) # (1, 2, 3, 4, 5)

3、可迭代对象转换为字符串

age = 24
print("My age is "+str(age))    # My age is 24

(二)min() max()

👉对比传入的可迭代对象,返回最小值或最大值

  • 数字类型比较数值大小
  • 字符串类型比较编码值大小
s = [1,1,2,3,5]
min(s) 

x = "fishc"
min(x) # 'c'

序列的有关知识

👉对于空列表,直接取最小值会报错,需要在min函数中给定默认参数default=……。此时,如果为空,会输出默认参数的内容

(三)len() sum() 

👉len函数是有长度限制的,最大为2^63-1

👉sum函数可以指定求和的起始值

序列的有关知识

(四)sorted() reversed()

💡列表进行临时排序---sorted(可迭代对象)

👉原列表保持不变,返回排序后的列表

👉可以处理所有类型的可迭代对象,返回一个列表

list1 = [2, 5, 2, 8, 19, 3, 7]
list2 = sorted(list1)
print(list1) # [2, 5, 2, 8, 19, 3, 7]
print(list2) # [2, 2, 3, 5, 7, 8, 19]
sorted(list1, reverse = True) # [19, 8, 7, 5, 3, 2, 2] 降序

👉参数key可以规定排序算法。这里使用len函数,排序会按照字符串的长度去排序

t = ["Apple","Banana","Fishc","Pen","Book"]
sorted(t) # ['Apple', 'Banana', 'Book', 'Fishc', 'Pen']
sorted(t,key=len) # ['Pen', 'Book', 'Apple', 'Fishc', 'Banana']

💡返回一个参数的反向迭代器(可迭代对象)---reversed(可迭代对象)

👉会生成对应数据类型的迭代器,然后使用相应的转换操作符来取出迭代器中的内容

s = [1,2,5,8,0]
reversed(s) # 一个迭代器<list_reverseiterator at 0x1f27215f5b0>
list(reversed(s)) # [0, 8, 5, 2, 1]

(五)all() any()

1、any()

👉有一个为真就返回True

2、all()

👉全真,则返回True

print(any([False,1,0,None]))   
print(all([False,1,0,None]))

(六)enumerate()

💡返回一个枚举类型,主要是将可迭代对象中的每个元素及从0开始的序号共同组成一个二元组的列表

👉在函数中可以指定开始序号,enumerate(可迭代对象,开始序号)

seasons = ["Spring","Sunmmer","Fall","Winter"]
enumerate(seasons) # <enumerate at 0x1f27255f650>
list(enumerate(seasons)) # [(0, 'Spring'), (1, 'Sunmmer'), (2, 'Fall'), (3, 'Winter')]
list(enumerate(seasons,10)) # [(10, 'Spring'), (11, 'Sunmmer'), (12, 'Fall'), (13, 'Winter')]

(七)zip()

💡创建一个聚合多个可迭代对象的迭代器

👉主要是将作为参数传入的多个可迭代对象的每个元素依次组合成元组,即第i个元组包含来自每个参数的第i个元素

👉在输出迭代器内容时,数据类型由根据类型转换操作符决定的,元素是元组类型的

x = [1,2,3]
y = [4,5,6]
zipped = zip(x,y)
list(zipped) # [(1, 4), (2, 5), (3, 6)]
tuple(zipped) # ((1, 4), (2, 5), (3, 6))
str(zipped) # '<zip object at 0x000001F271EB33C0>'

👉如果传入的参数长度不一致,以最短的参数为准或者导入itertools模块,使用zip_longest()函数,会在组合时自动为短的参数填充空值none

序列的有关知识

(八)map()

💡根据提供的函数对指定的可迭代对象的每个元素进行运算,并返回运算结果的迭代器

👉例子中根据给定的oed函数对字符串的字符依次进行计算,然后得到一个迭代器,对该迭代器进行数据转换

mapped = map(ord,"FishC")
list(mapped) # [70, 105, 115, 104, 67]

👉如果使用的函数是多个参数的,那么可迭代对象的数量也要对应增加

mapped = map(pow,[2,3,10],[5,2,3])
list(mapped) # [32, 9, 1000]

👉对于长短不一的可迭代对象,只能按照最短的来进行处理

list(map(max,[1,2,5],[2,2,2],[0,3,9,8])) # [2, 3, 9] 第三个参数的8是没有可比较的对象的

(九)filter() 过滤器

💡根据提供的函数对指定的可迭代对象的每个元素进行运算,并将结果为真的元素,以迭代器的形式返回

👉例子是过滤出小写字母

list(filter(str.islower,"FishC")) # ['i', 's', 'h']

三、迭代器 vs 可迭代对象

💡一个迭代器肯定是一个可迭代对象

👉迭代器是一次性的,可迭代对象可以重复使用

👉对于迭代器,只要对其进行相关数据操作,里面内容就会被取出,再次访问时就是空的

(一)iter() 

💡生成迭代器

x = [1,2,3,4,5]
y = iter(x) # y成为一个迭代器
type(x) # list
type(y) # list_iterator 列表迭代器

(二)next() 

next(y) # 1
next(y)
next(y)
next(y)
next(y) # 5
next(y) # 在将迭代器都输出结束后,会输出一个异常

💡可以给定默认输出的异常

z = iter(x)
next(z,"没啦")
next(z,"没啦")
next(z,"没啦")
next(z,"没啦")
next(z,"没啦")
next(z,"没啦") # 输出结束后会抛出给定的内容

 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!文章来源地址https://www.toymoban.com/news/detail-483448.html

到了这里,关于序列的有关知识的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微软有关AD域知识,创建AD域,新用户加入域步骤,MDE部署

    AD是Active Directory的缩写,即Windows服务器的活动目录,在目录中可以收录公司的电脑账号,用户账号,组等等以提供更好的安全性和更便捷的管理能力。 域是组织单元,也是来划分安全界限的。当你的公司成长到很大的时候,用一个域来管理各个城市的分公司会造成很多困难

    2024年02月08日
    浏览(34)
  • 【Spring】Spring框架介绍,功能模块,容器知识和有关Spring的生态圈的详细讲解

    作者简介: 辭七七,目前大一,正在学习C/C++,Java,Python等 作者主页: 七七的个人主页 文章收录专栏: 七七的闲谈 欢迎大家点赞 👍 收藏 ⭐ 加关注哦!💖💖 Spring框架是一个开放源代码的J2EE应用程序框架 ,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(

    2024年02月08日
    浏览(52)
  • java与es8实战之三:Java API Client有关的知识点串讲

    这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇是《java与es8实战》系列的第三篇,将一些重要的知识点在这里梳理清楚,为后面的实践奠定基础 一共有七个与Java API Client有关的重要知识点 关于namespace:每个feature都有自己的package 命名规则:

    2024年02月11日
    浏览(44)
  • CTF-PHP反序列化漏洞1-基础知识

    作者:Eason_LYC 悲观者预言失败,十言九中。 乐观者创造奇迹,一次即可。 一个人的价值,在于他所拥有的。可以不学无术,但不能一无所有! 技术领域:WEB安全、网络攻防 关注WEB安全、网络攻防。我的专栏文章知识点全面细致,逻辑清晰、结合实战,让你在学习路上事半

    2023年04月15日
    浏览(45)
  • 【C#】知识点实践序列之Lock的输出多线程信息

    大家好,我是全栈小5,欢迎来到《小5讲堂之知识点实践序列》文章。 2024年第2篇文章,此篇文章是C#知识点实践序列之Lock知识点,博主能力有限,理解水平有限,若有不对之处望指正! 本篇在Lock锁定代码块输出多线程信息,用于判断是否是同一个线程还是不同线程。 上篇

    2024年02月03日
    浏览(48)
  • Kafka 之生产者与消费者基础知识:基本配置、拦截器、序列化、分区器

    kafaf集群地址列表:理论上写一个节点地址,就相当于绑定了整个kafka集群了,但是建议多写几个,如果只写一个,万一宕机就麻烦了 kafka消息的key和value要指定序列化方法 kafka对应的生产者id 使用java代码表示则为以下代码:  可使用 retries 参数 进行设置,同时要注意记住两

    2024年02月05日
    浏览(55)
  • 有关bind一些困惑解答

    先看如下代码: 对于a和a都是可以正确编译执行,结果正确,往常我总是用a的写法,传的是指针进去,所以见到绑定成员函数,第二个参数传的是a,本身对象而感到困惑 查阅资料得出: 这个是bind关于绑定成员函数的源码 在这个模板函数中, _Bindres_helper 类模板用于根据

    2024年02月15日
    浏览(32)
  • 有关秩的结论。

    序号 结论 1. r(A) = A的列秩 = A的列秩 2. 若A可逆,则r(AB)=r(B),r(BA)=r(B) 3. 若A是mXn矩阵,B是nXs矩阵,且AB=O,则r(A)+r(B)=n 序号 设A是Mxn矩阵,B是满足有关矩阵要求的矩阵 4. 0= A = min{m,n} 5. r(kA) = r(A)(k/=0) 6. r(AB) = min{r(A),r(B)} 7. r(A+B)= r(A) +r(B) 前序:先引入矩阵如下性质 : 由上述矩阵兴致明

    2024年02月04日
    浏览(59)
  • linux文件系统,有关链接

    最近在看文件系统相关,什么ext2早期的文件系统模型,stat系统调用,opendir,link,等等系统调用部分,本节记录一下有关软硬链接的内容 目录 文件系统 文件存储流程 软链接文件与硬链接文件

    2024年02月05日
    浏览(22)
  • 有关偏序的概念

    偏序 :定义在一个集合S上的关系R,满足 自反、反对称、传递 ,R就是偏序。 偏序集 :集合S和S上的关系R一起成为偏序集,记作(S,R) 比如整数集合上的≥关系、正整数集合Z + 上的整除关系…见离散数学及其应用P543 ≼表示 任意一个偏序集中的序关系 (抽象意义上的“小

    2023年04月08日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包