pyhton基础知识——列表
学习资料:《Python编程:从入门到实践》
1.列表的表示
在python中,用方括号[]来表示列表,用逗号分隔其中的元素
2.对列表的访问
>>> a=['a','b','c']
>>> print(a)
['a', 'b', 'c']
>>> print(a[0])
a
>>> print(a[-1])
c
- 将索引指定为-1,可让python返回最后一个列表元素;索引-2返回倒数第二个列表元素,以此类推。
3.列表的增/删/改
>>> a.append('d')
>>> a
['a', 'b', 'c', 'd']
>>> a.insert(1,'A')
>>> a
['a', 'A', 'b', 'c', 'd']
- 在列表末尾添加元素:使用方法append()
- 在列表的任何位置添加新元素:使用方法insert()
>>> a
['a', 'A', 'b', 'c', 'd', 'f']
>>> del a[1]
>>> a
['a', 'b', 'c', 'd', 'f']
>>> last = a.pop()
>>> last
'f'
>>> a
['a', 'b', 'c', 'd']
>>> first = a.pop(0)
>>> first
'a'
>>> a
['b', 'c', 'd']
>>> a.remove('c')
>>> a
['b', 'd']
- 使用del()语句可删除任何位置处的列表元素,条件是知道其索引
- 使用方法pop()可弹出任何位置处的列表元素,若无给定索引则默认为列表末尾元素
- 使用方法remove()可根据元素值删除列表元素
- remove()只删除第一个指定的值,若要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值
4.列表的组织
>>> car = ['bmw', 'audi', 'toyota', 'subaru']
>>> car.sort(reverse=True)
>>> car
['toyota', 'subaru', 'bmw', 'audi']
>>> car.sort()
>>> car
['audi', 'bmw', 'subaru', 'toyota']
>>> car = ['bmw', 'audi', 'toyota', 'subaru']
>>> sorted(car)
['audi', 'bmw', 'subaru', 'toyota']
>>> sorted(car, reverse=True)
['toyota', 'subaru', 'bmw', 'audi']
>>> car
['bmw', 'audi', 'toyota', 'subaru']
>>> car.reverse()
>>> car
['subaru', 'toyota', 'audi', 'bmw']
>>> car.reverse()
>>> car
['bmw', 'audi', 'toyota', 'subaru']
>>> len(car)
4
- 使用方法sort()对列表进行永久性排序
- 使用函数sorted()对列表进行临时排序
- 使用方法reverse()永久性反转列表元素的排列顺序,再次调用即可恢复到原来的排序
- 使用函数len()可获取列表的长度
5.列表的遍历
cars = ['bmw', 'audi', 'toyota', 'subaru']
for car in cars:
print(car)
- python根据缩进来判断代码行与前一个代码行的关系
- for语句末尾要有冒号
- 检查特定值是否包含在列表中,可以使用关键字in
-
>>> cars = ['audi', 'bmw', 'subaru', 'toyota'] >>> 'bmw' in cars True >>> 'bmw' not in cars False
-
6.数值列表
>>> numbers = list(range(0,6))
>>> numbers
[0, 1, 2, 3, 4, 5]
>>> even_numbers = list(range(0,10,2))
>>> even_numbers
[0, 2, 4, 6, 8]
>>> min(numbers)
0
>>> max(numbers)
5
>>> sum(numbers)
15
>>> squares = [value**2 for value in range(0, 11)]
>>> squares
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
- 可以使用函数list()将range()的结果直接转换为列表
- 使用函数range()时,可指定步长
- 专门用于处理数字列表的函数:min(), max(), sum()
- 列表解析:将for循环和创建新元素的代码合并成一行,并自动附加新元素
7.处理列表的部分元素——切片
- 可指定起始索引和终止索引:如print(numbers[0:3])
- 若没有指定起始索引,python将自动从列表开头开始:如print(numbers[:3])
- 若没有指定终止索引,python将提取到列表的末尾元素:如print(numbers[0:])
- 可使用[:]来提取列表的所有元素
- 也可提取列表中倒数n个元素:如print(numbers[-3:])可以提取numbers列表的最后三个元素
8.使用切片复制列表
1 >>> numbers 2 [0, 1, 2, 3, 4, 5] 3 >>> temp = numbers[:] 4 >>> temp 5 [0, 1, 2, 3, 4, 5] 6 >>> numbers.append(6) 7 >>> temp.append(7) 8 >>> numbers 9 [0, 1, 2, 3, 4, 5, 6] 10 >>> temp 11 [0, 1, 2, 3, 4, 5, 7] 12 13 >>> temp2 = numbers 14 >>> temp2 15 [0, 1, 2, 3, 4, 5, 6] 16 >>> numbers.append(7) 17 >>> temp2.append(8) 18 >>> numbers 19 [0, 1, 2, 3, 4, 5, 6, 7, 8] 20 >>> temp2 21 [0, 1, 2, 3, 4, 5, 6, 7, 8]
- 上述代码中,第13行不能将numbers的副本存储到temp2中,它仅仅是将temp2和numbers都指向同一个列表
9.元组——不可变的列表
>>> nums = (100, 200) >>> nums (100, 200) >>> nums[0] 100 >>> nums[0] = 150 Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: 'tuple' object does not support item assignment >>> nums = (150, 200, 300) >>> nums (150, 200, 300)
- 在python中,用圆括号()来表示元组,用逗号分隔其中的元素
- 对于元组中的元素,不能进行增/删/改
- 可以给存储元组的变量赋值