设为首页 收藏本站
查看: 1057|回复: 0

[经验分享] Python list列表

[复制链接]

尚未签到

发表于 2018-8-5 10:51:31 | 显示全部楼层 |阅读模式
  一:
  列表: list
  列表的定义:
  1,列表是由一系列元素组成,元素与元素之间可能没有任何的关联关系,但他们之间有先后顺序关系。
  2,列表是一种容器
  3,列表是一种序列
  4,列表是可以改变的序列
  python3 中的序列有如下几种:
  字符串 str
  列表 List
  元组 tuple
  字节串 bytes
  字节数组  bytearray
  创建空列表的字面值:
  L = [    ]  #L 绑定空列表
  创建非空列表的字面值:
  L = [1, 2, 3, 4, 5]
  L = ['beijing', 'shanghai', sshenzhen]
  L = [1, 'two', 3.3, '四']
  L = [1.2, [3,1, 3.2, 3.3], 4]
  列表的构造函数
  函数说明
  list()# 生成一个空的列表 等同于 []
  list(iterable)# 用可迭代对象创建一个列表
>>> list('hello')  
['h', 'e', 'l', 'l', 'o']
  
>>> list(range(1,10,2))
  
[1, 3, 5, 7, 9]
  
>>>
  -----------------------------------------------------------------
  列表的运算:
  +  +=    * *=
  列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
  如下所示:
Python 表达式结果描述len([1, 2, 3])3长度[1, 2, 3] + [4, 5, 6][1, 2, 3, 4, 5, 6]组合['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']重复3 in [1, 2, 3]True元素是否存在于列表中for x in [1, 2, 3]: print x,1 2 3迭代  1,+用于拼接列表
>>> x = [1,2,3]  
>>> y = [4,5,6,7]
  
>>> x + y
  
[1, 2, 3, 4, 5, 6, 7]
  
>>>
  2,+=用原列表与右侧列表拼接,并用变量绑定新列表。
>>> x = [1,2,3]  
>>> x += [4,5,6]
  
>>> x
  
[1, 2, 3, 4, 5, 6]
  
>>>
  3,    *生成重复的列表
>>> x = [1,2,3] * 3  
>>> x
  
[1, 2, 3, 1, 2, 3, 1, 2, 3]   #生成三个同样的重复列表
  
>>> x = [1,2,3] * 2
  
>>> x
  
[1, 2, 3, 1, 2, 3]  #生成两个同样的重复列表
  
>>>
  4,*=生成重复的列表,并给原变量赋值
>>> x = [3,4]  
>>> x *= 2
  
>>> x
  
[3, 4, 3, 4]
  
>>> x *= 4
  
>>> x
  
[3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4]
  

  
>>> y = 3
  
>>> y *= [7,8]
  
>>> y
  
[7, 8, 7, 8, 7, 8]
  
>>>
  列表的比较运算:
  运算符:
  <<=>>===!=
>>> [1,2,3] < [1,2,4]   #安装顺序取列表中的每一个依次比较,依次比较中,那个数大,那个列表就大,后面的就不比较了  
True
  
>>> [1,3] > [1,2,4]
  
True
  
>>> [1,2,3] < [1,3,4,5,6,7,8]
  
True
  
>>>
  列表的in / not in 运算符:
  in  判断一个对象是否存在容器內,如果存在返回True.否则返回False
  用法同字符串的in相同
  语法:
  数据对象  in 容器
>>> L = [1,'Two', 3.3, '四']  
>>> 1 in L    #判断’1‘是否在列表中,在返回True
  
True
  
>>> 2 in L
  
False
  
>>> 3.3 in L  #判断’3.3‘是否在列表中,在返回True
  
True
  
>>> '4' not in L  #判断4是否‘不在’列表中,在返回True
  
True
  
>>> '四' in L  #判断‘四’是否在列表中,在返回True
  
True
  
>>>
  列表的索引:
  语法:
  列表[整数表达式]
  用法:
  取值时,等同于字符串的索引操作。
  索引分为正向索引和反向索引,规则与字符串索引规则完全相同
>>> L = [1,2,3,4,5,6]  
>>> L[0]
  
1
  
>>> L[2]
  
3
  
>>> L[2]
  
3
  
>>> L[-1]
  
6
  
>>> L[-2]
  
5
  列表的索引赋值:
  列表是可变的序列,可以通过索引赋值改变列表中的元素
>>> L = [1,2,3,4]  
>>> L
  
[1, 2, 3, 4]
  
>>> L[2] = 3.5   #将第三个元素改为3.5
  
>>> L
  
[1, 2, 3.5, 4]    #的到修改后的新列表
  
>>>
  列表的切片:
  语法:
  列表[:]
  列表[::]
  列表的切片取值时,返回一个列表,规则等同于字符串切片规则。
  列表的切片赋值:
  作用:
  可以改变原列表的排序,可以插入和修改数据
  可以用切片改变列表的对应元素的值。
  语法:
  列表[切片] = 可迭代对象。
  注:赋值运算符的右侧必须是一个可迭代对象
  如:
>>> L = [1,2,3,4]  
>>> L[0:1] = [1.1, 2.2]   #在首位和第一位添加1.1 和修改列表第一位‘1’为2.2  (列表是可修改的)
  
>>> L
  
[1.1, 2.2, 2, 3, 4]
  
>>>
  
>>> L = [1,2,3,4]
  
>>> L[1:] = [3.3,4.4,5.5]  #修改第一位后面所有的字符。
  
>>> L
  
[1, 3.3, 4.4, 5.5]
  

  
>>> L = [1,2,3,4]
  
>>> L[:]    #这个结果为打印整个列表
  
[1, 2, 3, 4]
  
>>> L = [1,2,3,4]
  
>>> L[:] = [0,1]    #   所以L[:] = [0,1] 时,替换原有的列表,生成新的列表。
  
>>> L
  
[0, 1]
  

  
>>> L = [1,2]
  
>>> L[1:1] = [3.1,3.4] #实现中间插入[3.1, 3.2]
  
>>> L
  
[1, 3.1, 3.4, 2]
  
>>>
  
>>> L = [1,2,3,4]
  
>>> L[0:0] = [0,1]  #实现在前面插入[0,1]
  
>>> L
  
[0, 1, 1, 2, 3, 4]
  
>>>
  
>>> L = [1,2,3,4]
  
>>> L[3:3] = [5,6] #实现在后面插入[5, 6]
  
>>> L
  
[1, 2, 3, 5, 6, 4]
  
>>>
  
>>> L = [1,5]
  
>>> L[1:1] = range(2,5) #用range函数生成的可迭代对象赋值
  
>>> L
  
[1, 2, 3, 4, 5]
  
>>>
  
>>> L = [1,2,3,4,5]
  
>>> L[1:2] = &quot;ABCDE&quot;  # &quot;ABCD&quot;也是可迭代对象
  
>>> L
  
[1, 'A', 'B', 'C', 'D', 'E', 3, 4, 5]
  
>>>
  切片赋值的注意事项:
  对于步长不等于1的切片赋值,赋值运算符右侧的可迭代对象提供的元素个数一定要等于切片切除的段数。
>>> L = [1,2,3,4,5,6]  
>>> L[::2] = &quot;ABC&quot;
  
>>> L
  
['A', 2, 'B', 4, 'C', 6]
  
>>> L = [1,2,3,4,5,6]
  
>>> L[::2] = &quot;ABCDE&quot;     #切出三段,但给出5个元素填充是错的(报错)
  
Traceback (most recent call last):
  
  File &quot;<stdin>&quot;, line 1, in <module>
  
ValueError: attempt to assign sequence of size 5 to extended slice of size 3
  
>>>
  del语句: 用于删除列表中的元素
  语法:
  del 序列[整数表达式]
  del 序列[切片]
>>> L = [1,2,3,4,5,6]  
>>> del L[-1]   #表示删除最后一个
  
>>> L
  
[1, 2, 3, 4, 5]
  
>>> del L[0]   #删除第一个
  
>>> L
  
[2, 3, 4, 5]
  python3中常有于序列的函数
  Python包含以下函数:
序号函数1cmp(list1, list2)  比较两个列表的元素
2len(list)  列表元素个数
3max(list)  返回列表元素最大值
4min(list)  返回列表元素最小值
5list(seq)  将元组转换为列表
  len(seq)     返回容器的元素个数
    >>> L = [1,2,3,4,5,6]  
    >>> len(L)
  
    6
  max(x)  返回序列的最大值元素
    >>> L = [1,2,3,4,5,6]  
    >>> max(L)
  
    6
  min(x)  返回序列的最小值元素
    >>>L = [1,2,3,4,5,6]  
    >>> min(L)
  
    1
  sum(x)  返回序列中所有元素的和(元素必须是数值类型)
    >>> L = [1,2,3,4,5,6]  
    >>> sum(L)
  
    21
  any(x)        真值测试,如果容器內其中一个值为True则返回True,否则返回False
  all(x)  真值测试,容器內所有元素的布尔值为True才返回True
  Python包含以下方法:
序号方法1list.append(obj)  在列表末尾添加新的对象
>>> L = []         #定义空列表  
>>> for i in range(10):    #生成’0-9‘的数字
  
...     L.append(i)        #追加到L空列表中
  
...
  
>>> print(L)
  
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]   #得到新的列表
  
>>>
2list.count(obj)  统计某个元素在列表中出现的次数
>>> L = [1,2,3,1,3,5,6,3,8]  
>>> L.count(1)   #统计‘1’在列表中出现过几次
  
2
  
>>> L.count(3) #统计‘3’在列表中出现过几次
  
3
  
>>> L.count(8) #统计‘8’在列表中出现过几次
  
1
  
>>>
3list.extend(seq)  在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
>>> L = [1,2,3]  #列表1  
>>> L2 = [4,5,6]  #列表2
  
>>> L.extend(L2)   #把列表2中的所有值一次性追加到列表1中
  
>>> L
  
[1, 2, 3, 4, 5, 6]   #生成新列表
  
>>>
4list.index(obj)  从列表中找出某个值第一个匹配项的索引位置
>>> L = [1,2,3,4,5,6]   #  
>>> L.index(1)   #返回列表中‘1’所对应的索引位置
  
0
  
>>> L.index(2)  #返回列表中‘2’所对应的索引位置
  
1
  
>>> L.index(3)  #返回列表中‘3’所对应的索引位置
  
2
  
>>> L.index(6)  #返回列表中‘6’所对应的索引位置
  
5
5list.insert(index, obj)  将对象插入列表
>>> L = [1,2,3,4]  
>>> L.insert(2,8)   #在列表中的第二个索引处插入‘8’
  
>>> L
  
[1, 2, 8, 3, 4]
  
>>> L.insert(0,10) #在列表中的‘0’索引处插入‘8’
  
>>> L
  
[10, 1, 2, 8, 3, 4]
  
>>>
6list.pop(obj=list[-1])  移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
>>> L = [1,2,3,4,5,6]   #原列表  
>>> L.pop()   #pop方法不加索引,默认删除最后一个元素,并返回删除元素的值
  
6
  
>>> L
  
[1, 2, 3, 4, 5]   #删除后的列表
  
>>> L.pop(2)  #加所有‘2’后,删除索引第二处的元素,并打印出来
  
3
  
>>> L
  
[1, 2, 4, 5]   #删除后的新列表
  
>>>
7list.remove(obj)  移除列表中某个值的第一个匹配项
>>> L = [1,2,3,1,5,6,2,8,6,9]   #原列表  
>>> L.remove(1)   #删除列表中从左至右第一个‘1’元素,有多个同样的元素也只会删除一次
  
>>> L
  
[2, 3, 1, 5, 6, 2, 8, 6, 9]
  
>>> L.remove(9)    #删除列表中从左至右第一个‘9’元素,有多个同样的元素也只会删除一次
  
>>> L
  
[2, 3, 1, 5, 6, 2, 8, 6]     #删除列表中从左至右第一个‘1’元素,有多个同样的元素也只会删除一次
  
>>> L.remove(1)
  
>>> L
  
[2, 3, 5, 6, 2, 8, 6]
  
>>>
8list.reverse()  反向列表中元素,列表的反转,用来改变原列表的先后顺序
>>> L = [1,2,3,4,5,6]  
>>> L.reverse()   #默认将列表反转,用来改变原列表的先后顺序
  
>>> L
  
[6, 5, 4, 3, 2, 1]
  
>>>
9list.sort([func])  对原列表进行排序,将列表中的元素进行排序,默认顺序按值的大到小的顺序排列
>>> L = [12,24, 30, 100, 5, 6, 88]   #原列表  
>>> L.sort()    #默认sort方法
  
>>> L
  
[5, 6, 12, 24, 30, 88, 100]  #的到从小到大排序的新列表
  
>>> L.sort(reverse=False)  #也可以加'reverse=False' 也是从小到大排序的新列表
  
>>> L
  
[5, 6, 12, 24, 30, 88, 100]
  
>>> L.sort(reverse=True)   # ‘reverse=True’改用reverse=True的话是从大到小排序。
  
>>> L
  
[100, 88, 30, 24, 12, 6, 5]
  
>>>

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-546910-1-1.html 上篇帖子: python - 列表 下篇帖子: Python中的if、while、for 语法及实例
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表