文章目录
- 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']