Python 列表list
前言
列表,又称序列、list,是python中最基本的数据结构。
list为可变数据类型,也具有上限,不过这个数很大,一般不会考虑
1、32位python的限制是 536870912 个元素。
2、64位python的限制是 1152921504606846975 个元素。
列表书写格式为:方挎号将数据挎起来,其内的数据使用逗号进行分割。每个数据对应的位置具有一个位置值,称为索引。正序从0开头,反序以-1开头。
>>> list_1 = ['a','b','c','d','e','f','g'] >>> list_1[1] 'b' >>> list_1[0] 'a' >>> list_1[-1] 'g'
增
向list中添加元素的方法:
1、append
list具有append方法,会向list末尾添加数据。注意是末尾位置,且没有返回值,是在原有的list中添加。这里涉及list的可变属性。
a = [1,2,3,4,5,6] b = ['a','b','c','d','e','f','g'] a.append(b) print(a) 结果: [1, 2, 3, 4, 5, 6, ['a', 'b', 'c', 'd', 'e', 'f', 'g']] #b作为一个整体添加到a
a = [1,2,3,4,5,6] b = ['a','b','c','d','e','f','g'] c = a.append(b) print(c) 结果: None #这里可以看到c并没有被赋值
2、+号
a = [1,2,3,4,5,6] b = ['a','b','c','d','e','f','g'] c = a + b print(c) 结果: [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e', 'f', 'g'] # b连接到a末尾
3、extend方法
a = [1,2,3,4,5,6] b = ['a','b','c','d','e','f','g'] a.extend(b) print(a) 结果: [1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd', 'e', 'f', 'g'] #类似+号
这块需要注意,extend传入的参数必须为可迭代对象。
a = [1,2,3,4,5,6] b = ['a','b','c','d','e','f','g'] c=1234 a.extend(c) print(a) 结果:出错。 a.extend(c) TypeError: 'int' object is not iterable
4、insert
Insert object before index,第一个参数为插入的位置,第二个参数为插入object
a = [1,2,3,4,5,6] b = ['a','b','c','d','e','f','g'] a.insert(2,b) print(a) 结果: [1, 2, ['a', 'b', 'c', 'd', 'e', 'f', 'g'], 3, 4, 5, 6]
删
1、pop方法:
删除并返回索引项(默认最后)。如果列表为空或索引超出范围则引发IndexError。这是根据下标删除元素
a = [1,2,3,4,5,6] a.pop(1) print(a) 结果: [1, 3, 4, 5, 6] #删除下标为1的元素
2、remove方法
删除第一个出现的值,如果值不存在将引发ValueError。删除list已有的元素。
a = [1,2,3,4,5,6] a.remove(2) print(a) 结果: [1, 3, 4, 5, 6]
3、del
根据下标删除
a = [1,2,3,4,5,6] del a[1] print(a) 结果: [1, 3, 4, 5, 6]
改、查
通过下标来修改list中的元素,通过下标查看list中的元素
a = [1,2,3,4,5,6] a[1] = 'Python' print(a) print(a[1]) 结果: [1, 'Python', 3, 4, 5, 6] Python
list的切片
切片的语法:[起始位置:结束位置:步长]。参数都可省略,第二个冒号也可省略。
a = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20] print(a[1:10:2]) print(a[:15:3]) print(a[::2]) print(a[1:10]) print(a[::]) 结果: [2, 4, 6, 8, 10] [1, 4, 7, 10, 13] [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] [2, 3, 4, 5, 6, 7, 8, 9, 10] [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20] #也可有负数下标,方法都一样
list的其他方法: