列表list是由方括号括起来的可修改、可重复的数据集
创建列表
myList = ["banana", "cherry", "apple"]
print(myList)
['banana', 'cherry', 'apple']
创建空列表
myList2 = list() #创建一个空列表list
# myList2 = []
print(myList2)
[]
列表允许不同的类型数据
myList = ['apple', True, 19]
print(myList)
['apple', True, 19]
列表允许数据重复
myList = ['apple', True, 19, 'apple']
print(myList)
['apple', True, 19, 'apple']
使用索引号访问列表种的数据
myList = ['banana', 'cherry', 'apple']
print(myList[1]
cherry
索引号由0开始,最大值为len(myList)-1,超出范围会抛出IndexError异常
myList = ['banana', 'cherry', 'apple']
print(myList[3])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
也可以使用负数索引,索引-1表示最后一个元素,-2表示倒数第二个元素
myList = ['banana', 'cherry', 'apple']
print(myList[-1])
apple
迭代遍历列表种的元素
myList = ['banana', 'cherry', 'apple']
for item in myList:
print(item)
banana
cherry
apple
查询列表种是否有某一个元素
myList = ['banana', 'cherry', 'apple']
if 'apple' in myList:
print('Yes')
else:
print('No')
Yes
列表的长度由len()给出
myList = ['banana', 'cherry', 'apple']
print(len(myList))
3
给列表添加元素
myList = ['banana', 'cherry', 'apple']
myList.append("lemon") #在末尾添加
print(myList)
['banana', 'cherry', 'apple', 'lemon']
添加元素到列表指定位置
myList = ['banana', 'cherry', 'apple']
myList.insert(1, 'lemon') #在索引号1插入
print(myList)
['banana', 'lemon', 'cherry', 'apple']
移除末端元素
myList = ['banana', 'cherry', 'apple']
item = myList.pop() #移除末端元素,将其返回
print(item)
print(myList)
apple
myList = ['banana', 'cherry']
移除指定元素
myList = ['banana', 'cherry', 'apple']
myList.remove("cherry") #移除cherry,不将其返回
print(myList)
myList = ['banana', 'apple']
列表不存在指定元素,则移除时会抛出ValueError异常
myList = ['banana', 'cherry', 'apple']
myList.remove('lemon')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: list.remove(x): x not in list
移除所有元素
myList = ['banana', 'cherry', 'apple']
myList.clear()
print(myList)
[]
反转元素排列
myList = ['banana', 'cherry', 'apple']
myList.reverse()
print(myList)
['apple', 'cherry', 'banana']
排序元素
myList = [4, 2, 1, -1, -3, 5, 10]
myList.sort()
print(myList)
[-3, -1, 1, 2, 4, 5, 10]
用同一值初始化多个元素
myList = [0]*10
print(myList)
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
连接两个列表
myList = [0] * 5
myList = [1, 2, 3, 4, 5]
newList = myList + myList2
print(newList)
[0, 0, 0, 0, 0, 1, 2, 3, 4, 5]
给列表切片
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
myList2 = myList[1:5] # 切片时指定start:stop,新切片范围[start, stop),包含start指向的元素,但不包含stop指向的元素
print(myList2)
[2, 3, 4, 5]
如果不指定start,则从索引0开始
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
myList2 = myList[:5]
print(myList2)
[6, 7, 8, 9]
[1, 2, 3, 4, 5]
不指定stop,则直至列表末
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
myList2 = myList[5:]
print(myList2)
[6, 7, 8, 9]
还可以指定索引增量
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
myList2 = myList[::2] #提取偶数索引号里面的元素构成新切片
print(myList2)
[1, 3, 5, 7, 9]
使用-1为指定索引增量,得到是原列表的反序列表
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
myList2 = myList[::-1]
print(myList2)
[9, 8, 7, 6, 5, 4, 3, 2, 1]
将一个列表变量赋值给另外一个列表变量,实际上它们同时指向同一个列表内存空间
orig = ['banana', 'cherry', 'apple']
cpy = orig
cpy.append('lemon')
print(orig)
print(cpy)
['banana', 'cherry', 'apple', 'lemon']
['banana', 'cherry', 'apple', 'lemon']
要拷贝列表,则需要列表的copy()方法
orig = ['banana', 'cherry', 'apple']
cpy = orig.copy()
cpy.append('lemon')
print(orig)
print(cpy)
['banana', 'cherry', 'apple']
['banana', 'cherry', 'apple', 'lemon']
还可使用list()函数
orig = ['banana', 'cherry', 'apple']
cpy = list(orig)
cpy.append('lemon')
print(orig)
print(cpy)
['banana', 'cherry', 'apple']
['banana', 'cherry', 'apple', 'lemon']
第三种方式是使用切片
orig = ['banana', 'cherry', 'apple']
cpy = orig[:]
cpy.append('lemon')
print(orig)
print(cpy)
['banana', 'cherry', 'apple']
['banana', 'cherry', 'apple', 'lemon']
使用列表生成式可以从一个列表生成另一个列表
myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
myList2 = [n * n for n in myList]
print(myList)
print(myList2)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 4, 9, 16, 25, 36, 49, 64, 81]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。