一.python 数据类型序列---列表
1.列表是可变型的数据类型。列表里边的元素是可变的,可以增加,可以删除。
2.列表(list)是处理一组有序项目的数据结构,即可以在列表中存储一个序列的项目。
1》列表是可变类型的数据
2》创建列表
list1 = []
list2 = list()
list3 = ['a',1,2]
3》列表,元组,字符串的表示方法
列表是用中括号表示
元组是用小括号表示
字符串是用引号表示
4》创建列表
方法一:
In [1]: list1 = [] //创建一个空的列表
In [2]: type(list1) //查看list1的类型
Out[2]: list //类型为列表
方法二:
In [3]: list2 = list()
In [4]: list2
Out[4]: []
方法三:
In [5]: list3 = ['a',1,(1,),['hello','python']]
In [6]: list3
Out[6]: ['a', 1, (1,), ['hello', 'python']]
创建一个list3的列表:列表里边可以是字符,数字,可以是元组,也可以是列表。列表里每个元素之间用逗号隔开。
可以通过len()查看序列长度
In [7]: len(list3)
Out[7]: 4
5》列表是可变元素,如下图所示
In [8]: list3 //list3里的元素,都在呢吧
Out[8]: ['a', 1, (1,), ['hello', 'python']]
In [9]: list3[0] //取list3中第一个元素
Out[9]: 'a' //第一个元素是a
In [10]: list3[0] = 'b' //把第一个元素变成b
In [11]: list3 //在查看list3的列表元素
Out[11]: ['b', 1, (1,), ['hello', 'python']]
6》列表相加,相当于构成一个大的列表
In [7]: list3
Out[7]: ['b', 1]
In [9]: list2 = [] //创建空列表list2
In [10]: list2
Out[10]: []
In [11]: list2.append('python') //list2里面追加字符“python”,只能追加一个参数
In [12]: list2
Out[12]: ['python']
In [13]: list2 + list3 //两个列表相加
Out[13]: ['python', 'b', 1]
6》列表也可以进行重复
In [15]: (list2 + list3)*2 //列表使用括号表示优先级要高,先进行括号里的在重复两遍
Out[15]: ['python', 'b', 1, 'python', 'b', 1]
3.列表操作
1》取值
切片和索引
2》添加
list.append()
3>删除
del list[]
list.removed(list[])
eg1:
In [19]: list3
Out[19]: ['b', 1, 'linxu']
In [21]: del list3[-1] //del删除的方式是用列表的下标表示
In [22]: list3
Out[22]: ['b', 1]
eg2:del 还可以删除变量
In [23]: list2
Out[23]: ['python']
In [24]: del list2
In [26]: list2 //删除后,查看list2报错
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-26-db9b7629a516> in <module>()
----> 1 list2
eg3:list.remove(list[])
In [32]: list1 //列表中可以有重复的字符
Out[35]: ['a', 3, 'abcd', 3]
In [41]: list1.remove(list1[1]) //删除列表中的3,可以看出列表删除的是第一个3
eg5:
In [45]: list1
Out[45]: ['a', 'abcd', 3]
In [46]: list1.remove(3) /括号里的3,指的是列表中的数字3,这个存在的值。不是切片的索引。
In [48]: list1.remove('a') //删除字母a
In [49]: list1
Out[49]: ['abcd']
In [47]: list1
Out[47]: ['a', 'abcd']
In [42]: list1
Out[42]: ['a', 'abcd', 3]
4》修改
list[] = x
5》查找
var in list
In [52]: list3
Out[52]: ['b', 1]
In [53]: 'd' in list3 //查看字符d在不在列表list3里,在的话显示true,不再的话显示flase
Out[53]: False
In [54]: 'a' not in list3 //查看a是否在list3列表中,不再显示true,在现实flase
Out[54]: True
4》使用insert进行插入
eg1:
In [55]: list1 //list1为空列表
Out[55]: []
In [56]: list3 //list3的列表
Out[56]: ['b', 1]
In [57]: list3.insert(0,list1) //在list3列表中,字符b的前边插入一个空的列表--list1.命令当中的0是字符b的切片索引值
In [58]: list3
Out[58]: [[], 'b', 1]
eg2:
In [58]: list3 //list3中有一个空的列表
Out[58]: [[], 'b', 1]
In [59]: list3[0].append('abcd') //往list3空的列表当中,插入字符abcd
In [60]: list3
Out[60]: [['abcd'], 'b', 1]
4>列表排序
In [61]: list3. //table键
list3.append list3.extend list3.insert list3.remove list3.sort
list3.count list3.index list3.pop list3.reverse
In [61]: list3
Out[61]: [['abcd'], 'b', 1]
In [62]: list3.sort()
In [64]: list3
Out[64]: [1, ['abcd'], 'b'] //列表是按升序排的
5》列表里的元素进行反转 L.reverse()
In [64]: list3
Out[64]: [1, ['abcd'], 'b']
In [65]: list3.reverse()
In [66]: list3
Out[66]: ['b', ['abcd'], 1]
6>删除列表里的元素
L.pop,示例如下
In [61]: a //a列表
Out[61]: [4, '2', 'abc', (2, 'ding')]
In [63]: a.pop(2) //删除索引为2的
Out[63]: 'abc'
In [64]: a
Out[64]: [4, '2', (2, 'ding')]
In [64]: a
Out[64]: [4, '2', (2, 'ding')]
In [65]: a.pop() //如果不加索引,默认删除最后一个
Out[65]: (2, 'ding')
In [66]: a
Out[66]: [4, '2']
7》追加
In [71]: range(5)
Out[71]: [0, 1, 2, 3, 4]
In [72]: a
Out[72]: [4, '2', 2, 'ding']
In [73]: a.extend(range(5)) //把range(5)追加到a列表里
In [74]: a
Out[74]: [4, '2', 2, 'ding', 0, 1, 2, 3, 4]
In [80]: list2
Out[80]: ['bb', 2, 3]
In [81]: a.extend(list2) ///把list2的单个元素 追加到a列表里边
In [82]: a
Out[82]: [4, '2', 2, 'ding', 0, 1, 2, 3, 4, 'bb', 2, 3] //追加的是list2的单个元素
8》字符串,列表,元组都是可迭代的,凡是可迭代的都可以用for循环访问。