1. 基本认识:
列表 :可以通过方括号括起、逗号分隔的一组值得到。一个 列表 可以包含不同类型的元素,但通常使用时各个元素类型相同,同时也支持索引和切片,以及拼接操作等
print(a[0]) # 1
print(a[-2:]) # [6, 7]
print(a[-4:-2]) # [3, 4]
print(a[:]) # [1, 3, 4, 6, 7]
print(a + [9, 10]) # [1, 3, 4, 6, 7, 9, 10]
a[4] = 10
print(a) # [1, 3, 4, 6, 10]
注:可以与其他函数联用,如内置函数len()。
a.append(12)
print(a) # [1, 3, 4, 6, 10, 12]
print(len(a)) # 6
2.列表更多特性:
(1)列表对象方法:
-list.append(x):在列表的末尾添加一个元素。相当于 a[len(a):] = [x]
-list.insert(i, x):在给定的位置插入一个元素
-list.remove(x):移除列表中第一个值为 x 的元素
-list.pop([i]):删除列表中给定位置的元素并返回它。如果没有给定位置,a.pop() 将会删除并返回列表中的最后一个元素。
-list.clear():删除列表中所有的元素。相当于 del a[:]
-list.index(x[, start[, end]]):返回列表中第一个值为 x 的元素的从零开始的索引。
-list.count(x):返回元素 x 在列表中出现的次数
-list.sort():对列表中的元素进行排序
-list.reverse():反转列表中的元素。
-list.copy():返回列表的一个浅拷贝。相当于 a[:]
a = ['orange', 'apple', 'pear', 'banana', 'kiwi', 'apple', 'banana']
print(a.count('apple')) # 2
print(a.index('banana')) # 3
print(a.index('banana', 4)) # 6
a.reverse()
print(a) # ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange']
a.append('grape')
print(a) # ['banana', 'apple', 'kiwi', 'banana', 'pear', 'apple', 'orange', 'grape']
a.sort()
print(a) # ['apple', 'apple', 'banana', 'banana', 'grape', 'kiwi', 'orange', 'pear']
print(a.pop()) # pear
(2)作为栈使用:
栈的规则即后进先出,根据上述所述,可以使用append(),以及pop()两种方法实现。
(3)作为队列使用:
队列的规则即先进先出,若要实现一个队列, collections.deque 被设计用于快速地从两端操作。
from collections import deque
a = deque(["Eric", "John", "Michael"])
a.append("Terry")
a.popleft()
print(a) # deque(['John', 'Michael', 'Terry'])
(4)列表推导式:
squares = [x ** 2 for x in range(10)]
print(squares) # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
squares = [(x, y) for x in [1, 2, 3] for y in [3, 1, 4] if x != y]
print(squares) # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
combs = []
for x in [1, 2, 3]:
for y in [3, 1, 4]:
if x != y:
combs.append((x, y))
print(combs) # [(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]