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中,用圆括号()来表示元组,用逗号分隔其中的元素
  • 对于元组中的元素,不能进行增/删/改
  • 可以给存储元组的变量赋值
posted @ 2021-07-16 17:38  bky-16  阅读(61)  评论(0编辑  收藏  举报