列表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]

Alan王伦胜
1 声望0 粉丝