文章目录

  • 1. List 介绍
  • 2. List 的操作
  • (1)List 基本操作
  • (2)List 基本函数
  • (3)List 基本方法

1. List 介绍

列表由一系列按特定顺序排列的元素组成,其中的元素之间可以没有任何关系。用 方括号 [ ] 表示列表,逗号分隔其中的元素。可以对列表进行索引、切片、加、乘、检查成员等一系列操作。

鉴于列表通常包含多个元素,所以一般建议给列表指定一个表示复数的名称(如names,digits等)。

2. List 的操作

(1)List 基本操作

1)创建列表并打印

>>> items = ['chemistry', 2019, 'Hello!', 'python', 1]
>>> items
['chemistry', 2019, 'Hello!', 'python', 1]

2)使用下标索引来访问列表中的值(列表索引从 0 开始)

>>> items = ['chemistry', 2019, 'Hello!', 'python', 1]
>>> items[1]
2019
>>> items[-1]
1
>>> items[-2]
'python'

3)对列表使用切片操作(左闭右开原则)

>>> items = ['chemistry', 2019, 'Hello!', 'python', 1]
>>> items[1 : 4]
[2019, 'Hello!', 'python']

4)更新列表,向列表里添加元素

>>> items = []
>>> items.append('Google')
>>> items
['Google']
>>> items.append(2019)
>>> items
['Google', 2019]

5)更新列表,删除列表元素

>>> items = ['chemistry', 2019, 'Hello!', 'python', 1]
>>> items
['chemistry', 2019, 'Hello!', 'python', 1]
>>> del items[0]
>>> items
[2019, 'Hello!', 'python', 1]

6)列表相加 list1 + list2(即组合列表)

>>> items1 = [1, 2, 3, 4]
>>> items2 = [5, 6, 7 ,8]
>>> items1 + items2
[1, 2, 3, 4, 5, 6, 7, 8]

7)列表的乘法 list * n(即列表重复)

>>> items = ['Hello! ']
>>> items * 5
['Hello! ', 'Hello! ', 'Hello! ', 'Hello! ', 'Hello! ']

8)判断某一元素是否在列表中 x in list

>>> items = ['chemistry', 2019, 'Hello!', 'python', 1]
>>> 'Hello!' in items
True
>>> 2 in items
False

9)迭代输出列表中的元素

>>> items = ['chemistry', 2019, 'Hello!', 'python', 1]
>>> for x in items : print(x)
chemistry
2019
Hello!
python
1

10)嵌套列表

>>> item1 = [1, 3, 5]
>>> items1 = [1, 3, 5]
>>> items2 = ['zero', 9]
>>> items3 = [items1, items2]
>>> items3  # 列表 items3 的元素是列表类型
[[1, 3, 5], ['zero', 9]]
>>> items3[1]
['zero', 9]
>>> items3[0][2]
5

(2)List 基本函数

11)len(list) 返回列表中的元素个数

语法:len(list)

  • list:要计算元素个数的列表
>>> items
[2019, 'Hello!', 'python', 1]
>>> len(items)
4

12)用 max(list)min(list) 返回列表最大最小值

语法:max(list) / min(list)

  • list:要返回最大 / 小值的列表
>>> items = [5, 3, 1, 9]
>>> max(items)  # 返回列表中的最大值
9
>>> min(items)
1
# 当列表元素为字符串时,比较各字符串第一个字符的ASCII码,若全相同则比较第二个,以此类推
>>> items = ['zero', '123', 'abc']
>>> max(items)  
'zero'
>>> min(items)
'123'
# 求字符的ASCII码
>>> ord('z')
122
>>> ord('1')
49
>>> ord('a')
97

13)用 list(tup) 将元组转换为列表

语法:list( seq )

  • seq:要转换为列表的元组或字符串

元组与列表是非常类似的,区别在于元组的元素值不能修改,元组是放在括号中,列表是放于方括号中。

>>> tuple = (123, 'xyz', 'zara', '9')
>>> tuple
(123, 'xyz', 'zara', '9')
>>> list = list(tuple)  # 将元组转换成列表存储在新的变量里
>>> list
[123, 'xyz', 'zara', '9']
>>> tuple  # 元组本身没有改变
(123, 'xyz', 'zara', '9')

14)用 cmp() 比较两个列表的元素(python3 已经取消该函数

(3)List 基本方法

15)append() 方法在列表末尾添加新的对象

语法:list.append(obj)

  • bj:添加到列表末尾的对象
>>> items = ['zero', 123, 'abc']
>>> items.append(2009)
>>> items  # append()方法会修改原来的列表
['zero', 123, 'abc', 2009]

16)count() 方法统计某个元素在列表中出现的次数

语法:list.count(obj)

  • obj:列表中统计的对象
>>> items.count(123)
2

17)insert() 方法将指定对象插入列表的指定位置

语法:list.insert(index, obj)

  • index:对象 obj 需要插入的索引位置
  • obj:要插入列表中的对象
>>> items = ['zero', 123, 'abc']
>>> items.insert(1, 2019)
>>> items  # insert 操作会改变原列表
['zero', 2019, 123, 'abc']

18)index() 方法从列表中找出某个值第一个匹配项的索引位置

语法:list.index(obj)

  • obj:查找的对象
>>> items = ['zero', 123, 'abc']
>>> items.index('abc')
2

19)extend() 方法在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)

语法:list.extend(seq)

  • seq:元素列表,可以是列表、元组、集合、字典,若为字典,则仅会将键(key)作为元素依次添加至原列表的末尾
>>> name = ['Eric']
>>> name_list = ['William']
>>> name_tuple = ('Jason', 'Andrew')
>>> name_set = {'Jack'}
>>> name_dict = {'Bob' : 23, 'Rose' : 18}

>>> name.extend(name_list)  # 列表后追加列表
>>> name
['Eric', 'William', 'William']
>>> name.extend(name_tuple)  # 列表后追加元组
>>> name
['Eric', 'William', 'William', 'Jason', 'Andrew']
>>> name.extend(name_set)  # 列表后追加集合
>>> name
['Eric', 'William', 'William', 'Jason', 'Andrew', 'Jack']
>>> name.extend(name_dict)  # 列表后追加字典
>>> name
['Eric', 'William', 'William', 'Jason', 'Andrew', 'Jack', 'Bob', 'Rose']

注意: extend() 直接改变原列表,方法返回值为空。

>>> print(name.extend(name_list))
None

20)pop() 方法 移除列表中的一个元素(默认为最后一个元素)并且返回该元素的值

语法:list.pop([index = -1])

  • index:可选参数,要移除列表元素的索引值,不能超过列表总长度,默认为 index=-1,删除最后一个列表值
>>> items = ['zero', 123, 'abc']
>>> items.pop()
'abc'
>>> items
['zero', 123]
>>> items.pop(0)
'zero'
>>> items
[123]

21)remove() 方法移除列表中某个值的第一个匹配项

语法:list.remove(obj)

  • obj:列表中要移除的对象
>>> items = ['zero', 123, 'abc']
>>> items.remove(123)  #无返回值 对原列表做出修改
>>> items
['zero', 'abc']

22)reverse() 方法反向翻转列表中元素

语法:list.reverse() 无参数

>>> items = ['zero', 123, 'abc']
>>> items.reverse()  #无返回值 对原列表做出修改
>>> items
['abc', 123, 'zero']

23)sort() 对原列表进行排序,如果指定参数则按照比较函数进行排序

语法:list.sort( key=None, reverse=False)

  • key:用于进行比较的规则
  • reverse:排序规则,reverse = True 降序, reverse = False 升序(默认)
>>> items = ['c', 'A', 'D', 'p']
>>> items.sort()  # 无返回值且 原列表进行操作
>>> items  
['A', 'D', 'c', 'p']
>>> items.sort(reverse=True)  # 降序排序
>>> items
['p', 'c', 'D', 'A']

>>> def takeSecond(elem):
      return elem[1]
>>> items = [(2, 2), (3, 4), (4, 1), (1, 3)]
>>> random.sort(key=takeSecond)  # 指定按第二个元素排序
>>> items
[(4, 1), (2, 2), (1, 3), (3, 4)]

24)clear() 用于清空列表,类似于 del a[:]

语法:list.clear() 无参数

>>> items = ['zero', 123, 'abc']
>>> items.clear()  # 无返回值 对原列表进行操作
>>> items
[]

25)copy() 用于复制列表,类似于 a[:]

语法:list.copy() 无参数

>>> items = ['zero', 123, 'abc']
>>> items_1 = items.copy()  # 返回复制后的新列表
>>>> items_1
['zero', 123, 'abc']