一、列表的特性介绍
- 列表和字符串⼀样也是序列类型的数据
- 列表内的元素直接⽤英⽂的逗号隔开,元素是可变的,所以列表是可变的数据类型,⽽字符串不是。
- 列表的元素可以是 Python 中的任何类型的数据对象。如:字符串、列表、元组、字典、集合、函数
- 列表中的具有相同值的元素允许出现多次。[1, 2, 1, 1, 1, 1, 3, 3, 2]
二、创建列表
#list() 从其他类型转换
In [8]: list('hello')
Out[8]: ['h', 'e', 'l', 'l', 'o']
#从字符串转换 split()
In [9]: 'www.liang.com'.split('.')
Out[9]: ['www', 'liang', 'com']
三、嵌套的列表
列表中可包含 python 中任何类型的元素(对象),当然也可以包括⼀个或多个列表
In [23]: l3 = [['one','two','three'],[1,2,3]]
四、列表的基本操作
1.取值
In [11]: le = ['insert','append','remove','pop','sort']
In [12]: le[0]
Out[12]: 'insert'
In [13]: le[-1]
Out[13]: 'sort'
2.嵌套的列表取值
In [23]: l3 = [['one','two','three'],[1,2,3]]
In [24]: l3[0]
Out[24]: ['one', 'two', 'three']
In [25]: l4 = l3[0]
In [26]: l4
Out[26]: ['one', 'two', 'three']
In [27]: l4[1]
Out[27]: 'two'
In [28]: l3[0][1]
Out[28]: 'two'
In [29]: l3[1][1]
Out[29]: 2
3.就地修改
In [32]: li = ['liang',1314,'521']
In [33]: li[0] = '亮'
In [34]: li
Out[34]: ['亮', 1314, '521']
4.切⽚
In [35]: line = 'Size: 8192 MB\n'
In [36]: line[:-1]
Out[36]: 'Size: 8192 MB'
In [37]: line[:-1].split(": ")
Out[37]: ['Size', '8192 MB']
In [38]: line
Out[38]: 'Size: 8192 MB\n'
In [39]: line.split(": ")
Out[39]: ['Size', '8192 MB\n']
In [40]: line[:-1].split(": ")
Out[40]: ['Size', '8192 MB']
In [41]: a,b = ['Size', '8192 MB']
In [42]: a
Out[42]: 'Size'
In [43]: b
Out[43]: '8192 MB'
In [44]: a,b = line[:-1].split(": ")
In [45]: a
Out[45]: 'Size'
In [46]: b
Out[46]: '8192 MB'
In [47]: line.split(": ")
Out[47]: ['Size', '8192 MB\n']
In [48]: a,b = line.split(": ")
In [49]: a
Out[49]: 'Size'
In [50]: b
Out[50]: '8192 MB\n'
In [51]: b = b[-1]
In [52]: b
Out[52]: '\n'
In [53]: a
Out[53]: 'Size'
In [54]: b
Out[54]: '\n'
In [55]: a,b = line.split(": ")
In [56]: a
Out[56]: 'Size'
In [57]: b
Out[57]: '8192 MB\n'
In [58]: b = b[:-1]
In [59]: b
Out[59]: '8192 MB'
In [60]: line
Out[60]: 'Size: 8192 MB\n'
In [61]: line.split('\n')
Out[61]: ['Size: 8192 MB', '']
In [62]: line.split('\n')[:-1]
Out[62]: ['Size: 8192 MB']
5.必会⽅法
len()⽅法是⼀个内置函数,可以统计序列类型的数据结构的⻓度。
In [64]: li = ['liang',1314,'521']
In [65]: len(li)
Out[65]: 3
in判断元素是否存在于列表中。
In [66]: '521' in li
Out[66]: True
In [67]: 521 in li
Out[67]: False
In [68]: 1314 in li
Out[68]: True
In [69]: if 'liang' in li:
...: print('ok')
...:
ok
In [70]:
append() 向列表的最后位置,添加⼀个元素,只接收⼀个参数。
In [70]: li.append(521)
In [71]: li
Out[71]: ['liang', 1314, '521', 521]
insert() 向原列表的指定位置插⼊⼀个元素,接收两个参数,第⼀个是索引号,第⼆个是要插⼊的元素。
In [72]: li.insert(0,521)
In [73]: li
Out[73]: [521, 'liang', 1314, '521', 521]
remove() 移除列表中某个指定的元素,没有返回值,并且假如有多个相同值的元素存在,每次只会移除排在最前⾯的那个元素。
In [74]: li.remove(521)
In [75]: li
Out[75]: ['liang', 1314, '521', 521]
pop()从原列表中删除⼀个元素,并且把这个元素返回。 接收零个或⼀个参数,参数是偏移量,int 类型。
# 删除列表中的最后⼀个元素
In [76]: li.pop()
Out[76]: 521
# 删除列表中的最后⼀个元素,并且返回这个元素,⽤变量
名'v' 接收。
In [77]: v = li.pop()
In [78]: v
Out[78]: '521'
In [79]: li
Out[79]: ['liang', 1314]
# 删除列表中第1个索引号对应的元素
In [80]: li.pop(1)
Out[80]: 1314
In [81]: li
Out[81]: ['liang']
五、循环列表
1.for 循环语法
for 变量 in 可迭代对象:
循环体的代码,必须缩进 4 个空格
多⾏代码缩进要⼀致
可迭代对象 可以理解为可以被 for 循环的数据。 ⽐如: 字符串、列表、元组、⽂件对象(后⾯讲)等。
2.for 循环列表中的元素
In [83]: li = ['liang',1314,'521','ll']
In [84]: for i in li:
...: print(i)
...:
#结果
liang
1314
521
ll
In [85]: