介绍:
列表是一种可变的有序集合,可以进行访问、添加和删除操作。
元组是一种不可变的有序集合,可以访问。
创建列表
ls = ['mary', 'tom', 'kate']
['mary', 'tom', 'kate']
注意:列表中的元素可以为不同类型,且可以为列表
In [29]: ls2=[1,2,'d','fairy',[1,4]]
In [30]: ls2
Out[30]: [1, 2, 'd', 'fairy', [1, 4]]
列表元素的访问和截取
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [7]: ls[1]
Out[7]: 'tom'
In [8]: ls[-1]
Out[8]: 'kate'
// 包含1从1开始的元素:ls[1],ls[2]
In [11]: ls[1:]
Out[11]: ['tom', 'kate']
// 不包含2到2为止的元素:ls[0],ls[1]
In [13]: ls[:2]
Out[13]: ['mary', 'tom']
// ls中的所有元素
In [9]: ls[:]
Out[9]: ['mary', 'tom', 'kate']
更新和添加列表元素
// 更新列表元素
In [92]: ls[1]='jerry'
In [93]: ls
Out[93]: ['mary', 'jerry', 'kate']
// 在列表尾部添加元素 'me'
In [16]: ls.append('me')
In [17]: ls
Out[17]: ['mary', 'tom', 'kate', 'me']
// 在列表索引为2处添加元素 'jack'
In [18]: ls.insert(2,'jack')
In [19]: ls
Out[19]: ['mary', 'tom', 'jack', 'kate', 'me']
注意:不存在的元素不可以用索引来引用或添加
// 注意:不存在的元素不可以用索引来引用或者添加
In [14]: ls[3]
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-14-bc53f97bfb95> in <module>()
----> 1 ls[3]
IndexError: list index out of range
In [15]: ls[3]='me'
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-15-41a017d867bd> in <module>()
----> 1 ls[3]='me'
IndexError: list assignment index out of range
删除列表元素
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
// 删除列表的最后一个元素,且返回此元素
In [20]: ls.pop()
Out[20]: 'me'
In [21]: ls
Out[21]: ['mary', 'tom', 'jack', 'kate']
// 删除列表索引为2处的元素且返回此元素
In [22]: ls.pop(2)
Out[22]: 'jack'
In [23]: ls
Out[23]: ['mary', 'tom', 'kate']
// 移除列表中匹配为'tom'的元素,不返回任何值
In [25]: ls.remove('tom')
In [26]: ls
Out[26]: ['mary', 'kate']
// 清空列表
lIn [27]: ls.clear()
In [28]: ls
Out[28]: []
// 删除索引为0的列表元素
In [88]: ls
Out[88]: [1, 2]
In [89]: del ls[0]
In [90]: ls
Out[90]: [2]
删除列表
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [96]: lss=[1,2,3]
In [97]: del lss
In [98]: lss
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-98-3ee6987b75c4> in <module>()
----> 1 lss
NameError: name 'lss' is not defined
// 列表长度
In [33]: len([1,2,3])
Out[33]: 3
// 列表加
In [34]: [1,2,3]+[4,5,6]
Out[34]: [1, 2, 3, 4, 5, 6]
// 列表乘
In [35]: ['Echo']*3
Out[35]: ['Echo', 'Echo', 'Echo']
// 判断是否在列表中
In [36]: 1 in [1,2,3]
Out[36]: True
In [37]: 1 in [4,2,3]
Out[37]: False
函数
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
// 返回列表长
In [38]: len([1,2,3])
Out[38]: 3
// 返回列表中最大元素
In [39]: max([1,2,3])
Out[39]: 3
// 返回列表中最小元素
In [40]: min([1,2,3])
Out[40]: 1
// 将元组转化为列表
In [41]: list((1,2,3))
Out[41]: [1, 2, 3]
方法
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
// 统计列表中'a'出现的次数,并返回次数
In [70]: ['a','b','f',1,'a',3].count('a')
Out[70]: 2
// 统计列表中'a'第一次出现的索引,并返回索引号
In [73]: ['a','b','f',1,'a',3].index('a')
Out[73]: 0
// 在列表后追加l另一列表中多个元素,不返回
In [42]: ls=['a','b','f',1,'a',3]
In [45]: ls.extend([1,7,8])
In [46]: ls
Out[46]: ['a', 'b', 'f', 1, 'a', 3, 1, 7, 8]
// 列表的元素反转,不返回
In [49]: ls.reverse()
In [50]: ls
Out[50]: [8, 7, 1, 3, 'a', 1, 'f', 'b', 'a']
// 列表的排序(可以在sort([func])里指定排序用的方法),不返回
In [53]: ls=[1,4,2,7,3]
In [54]: ls.sort()
In [55]: ls
Out[55]: [1, 2, 3, 4, 7]
注意:以上不返回的函数和方法就是对列表本身做修改,不会生成新的列表,这里一定要注意!
在python3.6中,赋值和copy方法是一样的:
'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
In [80]: ls=[1,2,3]
// 赋值
In [81]: ls_=ls
// copy方法
In [82]: ls_c=ls.copy()
In [83]: ls_
Out[83]: [1, 2, 3]
In [84]: ls_c
Out[84]: [1, 2, 3]
// 改变ls本身的值
In [85]: ls=[1,2]
// 两者皆不改变
In [86]: ls_
Out[86]: [1, 2, 3]
In [87]: ls_c
Out[87]: [1, 2, 3]
元组的操作和列表基本一致,需要注意的几个地方是:
元组的创建是 ” () “,列表的创建是 " [] ", 列表只有一个元素时创建没有问题,但是如果元素只有一个元素,需要在元素后加”,“,否则会被认为只是一个元素本身,元组的创建可以不加” () “;
// 加括号创建
In [101]: tp=(1,2,3)
In [102]: tp
Out[102]: (1, 2, 3)
// 不加括号创建
In [103]: tp=1,2,3
In [104]: tp
Out[104]: (1, 2, 3)
// 只有一个元素且不加逗号,不会被识别为元组
In [105]: tp=(1)
In [106]: type(tp)
Out[106]: int
// 只有一个元素但是加逗号,会被识别成元组
In [107]: tp=(1,)
In [108]: type(tp)
Out[108]: tuple
除上述不同之外,元组和列表的访问、截取、操作符和函数都是一样的,元组没有更新、添加和删除元素的操作,但是可以删除元组本身,和list的删除一样;
In [109]: del tp
In [110]: tp
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-110-6fc78332fdd4> in <module>()
----> 1 tp