Python3 菜鸟教程 笔记3 -- 列表和元组

Bertha 。 2023-06-09 07:53 38阅读 0赞

$ 列表
@ Python列表脚本操作符
列表对 + 和 * 的操作符与字符串相似。+ 号用于组合列表,* 号用于重复列表。
[例]

len([1, 2, 3])
3
[1, 2, 3] + [4, 5, 6]
[1, 2, 3, 4, 5, 6]
3 in [1, 2, 3]
True
[1, 2, 3]*3
[1, 2, 3, 1, 2, 3, 1, 2, 3]

@ 列表推导式书写形式  
[表达式 for 变量 in 列表] 或者 [表达式 for 变量 in 列表 if 条件]
[例]

list1=[x**2 for x in [1,2,3,4,5,6] if x%2==0]
list1
[4, 16, 36]

@ 将列表当做堆栈使用,使用append()方法和pop()方法

@ 将列表当作队列使用(效率不高)
[例]

from collections import deque
queue = deque([“Eric”, “John”, “Michael”])
queue.append(“Terry”)
queue
deque([‘Eric’, ‘John’, ‘Michael’, ‘Terry’])
queue.popleft()
‘Eric’
queue
deque([‘John’, ‘Michael’, ‘Terry’])

@ Python列表函数
len(list) -> 列表元素个数
max(list) -> 返回列表元素最大值
min(list) -> 返回列表元素最小值
list(seq) -> 将元组、字符串、集合转换为列表
[例]

list(‘ddddfff’)
[‘d’, ‘d’, ‘d’, ‘d’, ‘f’, ‘f’, ‘f’]
list({1,1,1,2,2,3})
[1, 2, 3]
list((1,2,3))
[1, 2, 3]

@ Python列表方法
1 list.append(obj) -> 在列表末尾添加新的对象

2 list.count(obj) -> 统计某个元素在列表中出现的次数

3 list.extend(seq) -> 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
[例]

language = [‘French’, ‘English’, ‘German’]
language_tuple = (‘Spanish’, ‘Portuguese’)
language_set = {‘Chinese’, ‘Japanese’}
language.extend(language_tuple)
language
[‘French’, ‘English’, ‘German’, ‘Spanish’, ‘Portuguese’]
language.extend(language_set)
language
[‘French’, ‘English’, ‘German’, ‘Spanish’, ‘Portuguese’, ‘Chinese’, ‘Japanese’]
language.extend(language)
language
[‘French’, ‘English’, ‘German’, ‘Spanish’, ‘Portuguese’, ‘Chinese’, ‘Japanese’, ‘French’, ‘English’, ‘German’, ‘Spanish’, ‘Portuguese’, ‘Chinese’, ‘Japanese’]

4 list.index(x, start=0, end=len(list)) -> 从列表中找出某个值第一个匹配项的索引位置
x— 查找的对象。
start— 可选,查找的起始位置。
end— 可选,查找的结束位置。
返回值:该方法返回查找对象的索引位置,如果没有找到对象则抛出异常。
[例]

list1=[1,2,3,4,5,6,7]
list1.index(2)
1
list1.index(8)
Traceback (most recent call last):
File ““, line 1, in
list1.index(8)
ValueError: 8 is not in list

5 list.insert(index, obj) -> 该方法没有返回值,但会在列表指定位置插入对象
index — 对象obj需要插入的索引位置。
obj — 要插入列表中的对象。

6 list.pop([index=-1])
移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
[例]

list2
[1, 2, 3, 4, 5, 6]
list2.pop()
6

list2
[1, 2, 3, 4, 5]
list2.pop(2)
3
list2
[1, 2, 4, 5]

7 list.remove(obj)
移除列表中某个值的第一个匹配项

8 list.reverse() -> 该方法没有返回值,但是会对列表的元素进行反向排序。
[例]

list1
[1, 2, 3, 4, 5, 6, 7]
list1.reverse()
list1
[7, 6, 5, 4, 3, 2, 1]
list2 = list1[::-1]
list2
[1, 2, 3, 4, 5, 6, 7]
list1
[7, 6, 5, 4, 3, 2, 1]

9 list.sort( key=None, reverse=False) -> 该方法没有返回值,但是会对列表的对象进行排序。
key — 主要是用来进行比较的元素,只有一个参数,具体的函数的参数就是取自于可迭代对象中,指定可迭代对象中的一个元素来进行排序。
reverse — 排序规则,reverse = True 降序, reverse = False 升序(默认)。
[例]

fruit_list=[‘Apple’,’Avocado’,’Banana’,’Grapes’,’Pear’,’Shaddock’]
fruit_list.sort() #升序
fruit_list
[‘Apple’, ‘Avocado’, ‘Banana’, ‘Grapes’, ‘Pear’, ‘Shaddock’]
fruit_list.sort(key=lambda fruit:len(fruit)) #按长度升序
fruit_list
[‘Pear’, ‘Apple’, ‘Banana’, ‘Grapes’, ‘Avocado’, ‘Shaddock’]
fruit_list.sort(key=lambda fruit:(-len(fruit),fruit),reverse=True) #先按元素的长度升序,再按元素降序
fruit_list
[‘Pear’, ‘Apple’, ‘Grapes’, ‘Banana’, ‘Avocado’, ‘Shaddock’]

list1=[[‘Spring’,15,’Flower’],[‘Summer’,17,’Ice-cream’],[‘Autumn’,22,’Fruit’],[‘Winter’,21,’Snow’]]

list1.sort(key=lambda ele:ele[1],ele[0])
SyntaxError: positional argument follows keyword argument
list1.sort(key=lambda ele:(ele[1],ele[0])) #先按第二个元素排序,再按第一个元素排序
list1
[[‘Spring’, 15, ‘Flower’], [‘Summer’, 17, ‘Ice-cream’], [‘Winter’, 21, ‘Snow’], [‘Autumn’, 22, ‘Fruit’]]
list1[2][1]=22
list1.sort(key=lambda ele:(ele[1],ele[0]))
list1
[[‘Spring’, 15, ‘Flower’], [‘Summer’, 17, ‘Ice-cream’], [‘Autumn’, 22, ‘Fruit’], [‘Winter’, 22, ‘Snow’]]

10 list.clear() -> 清空列表
[例]

list1
[4, 16, 36]
list1.clear()
list1
[]

调用 clear() 方法后,已经赋值给其它变量的列表也会被清空。
调用改变列表的方法,相应的已经赋值给其它变量的列表也会变化。

11 list.copy() -> 复制列表
[例]

list_a = [1,2,3,4,5]
list_b = list_a
list_c = list_a[:]
list_d = list_a.copy()

list_a.append(6)
list_b.remove(3)
list_c.pop()
5
list_d.insert(4,’d’)
for list in [list_a,list_b,list_c,list_d]:
print(list)

[1, 2, 4, 5, 6]
[1, 2, 4, 5, 6]
[1, 2, 3, 4]
[1, 2, 3, 4, ‘d’, 5]

$ 元组

@ 元组内置函数

len(tuple) -> 计算元组元素个数。

max(tuple) -> 返回元组中元素最大值。

min(tuple) -> 返回元组中元素最小值。

tuple(seq) -> 将列表转换为元组。

发表评论

表情:
评论列表 (有 0 条评论,38人围观)

还没有评论,来说两句吧...

相关阅读

    相关 python3-之列表

    1. 列表和元组 ​ 列表list是一种有序的集合,用来存储多个值,可以向列表中添加或删除元素 ​ 元组tuple与list很类似,也是用来存储多个值,但tuple中的