python数据结构(三):list(列表)

python数据结构(三):list(列表)一 定义列表 列表可以理解为可变的元组 它的使用方式跟元组差不多 区别就是列表可以动态的增加 修改 删除元素 定义一个空列表 lst lst list 定义带有初始值的列表 lst 1 2 3 lst a

大家好,我是讯享网,很高兴认识大家。
一、定义列表

列表可以理解为可变的元组,它的使用方式跟元组差不多,区别就是列表可以动态的增加、修改、删除元素

# 定义一个空列表 lst = [] lst = list() # 定义带有初始值的列表 lst = [1, 2, 3] lst = ["a", 1, 2, 3, "b", "c"] lst = list(range(5)) lst = list("abc") lst = list((1, 2, 3)) 

讯享网
二、list的增删改查

列表的访问和字符串、元组一样,索引或者下标都可以

讯享网lst = ['a', 'b', 'c', 'd', 'e'] lst[0] # 'a' lst[1:3] # ['b', 'c'] 
2.1、增加元素
lst.append('x') lst # ['a', 'b', 'c', 'd', 'e', 'x'] 

注意: append函数总是在列表后面添加元素,列表的长度也增加了1
在这里插入图片描述
讯享网

2.2、删除元素

删除列表元素后边的元素的索引都会发生变化,后面元素的索引都会往前挪一位

讯享网lst = ['a', 'b', 'c', 'd', 'e'] del lst[2] lst  ['a', 'b', 'd', 'e'] 

在这里插入图片描述

2.3、修改元素
lst = ['a', 'b', 'c', 'd', 'e'] lst[-1] = 'f'  修改元素 e -> f lst[2] = ''  修改元素 c ->  lst  ['a', 'b', '', 'd', 'f'] 

在这里插入图片描述

三、列表函数

列表也是一种序列,它也具有index和count函数和支持len函数,这些函数的用法和元组一样,它的循环遍历也和元组一样。此外列表还有一些其它函数,比如insertpopremoveclear等等

1、insert 函数

insert函数和append函数一样,用来向列表中添加一个新的元素,区别就是append是在最后添加,insert则可以向任意位置添加。

讯享网lst = ['a', 'c', 'e'] # 在第二个元素'c'前面插入一个字符串'b' lst.insert(1, 'b') # lst现在的值是['a', 'b', 'c', 'e'] # 在最后一个元素'e'前面插入一个字符串'd' lst.insert(-1, 'd') # lst现在的值是['a', 'b', 'c', 'd', 'e'] 
2、pop 函数

每次调用pop函数会从列表中“弹”出一个元素,如果没有带参数,那将最后一个元素弹出,参数就是列表元素索引

lst = ['a', 'b', 'c', 'd', 'e'] temp = lst.pop() temp2 = lst.pop(2) print(lst) # ['a', 'b', 'd'] print(temp) # 'e' print(temp2) # 'c' 
3、remove 函数

remove函数的参数是要删除的元素内容而非索引,和del(参数为索引)函数可以对比

讯享网lst = [1, 2, 1, 'a', 'b', 'c'] lst.remove('a') print(lst) # lst的值为[1, 2, 1, 'b', 'c'] lst.remove(1) # 注意这里的1是元素值,不是索引 print(lst) # lst的值为[2, 1, 'b', 'c'] 
4、clear 函数

clear函数会清空列表内的所有元素

lst = [1,2,3,4] lst.clear() print(lst) # 结果为[] 
5、extend 函数

extend函数有点像append函数,但append函数每次只能添加一个元素,而extend可以添加一组

讯享网lst = [] lst.extend(range(5)) print(lst) # [0, 1, 2, 3, 4] lst.extend([5, 6, 7]) print(lst) # [0, 1, 2, 3, 4, 5, 6, 7] 

在这里插入图片描述

6、reverse 函数

将整个列表反转

lst = [1,2,3,4,5,6,7] lst.reverse()  结果 [7, 6, 5, 4, 3, 2, 1] lst 

在这里插入图片描述

7、sort 函数

按照一定的规则将列表中的元素重新排序,对于数值,默认按从小到大的顺序排列。如果想要让列表从大到小排列,可以加上reverse参数

讯享网lst = [3, 5, 2, 1, 4] lst.sort() print(lst)  [1, 2, 3, 4, 5] lst.sort(reverse=True) print(lst)  [5, 4, 3, 2, 1] 

在这里插入图片描述

对于字符串,则会按照它们的ASCII值的顺序排列。ASCII值一共有128个字符,包含数字0~9,字母a-z, A-Z,还有一些常用的符号。每一个字符对应一个数字,比如字母’A’对应的就是65, 字母’B’对应66,等等。在Python中,可以使用内置函数将字符与它的ASSCII值互转。

ord('A') # 65 chr(66) # 'B' 

sort函数会比对每个字符串的第一个字符,如果第一个字符相同,则比对第二个字符,以此类推。

讯享网fruits = ['apple', 'banana', 'orange', 'blueberry'] fruits.sort() print(fruits) # ['apple', 'banana', 'blueberry', 'orange'] 

如果列表的元素不是简单的字符或者数字,那怎么进行排序呢,比如有下面一个列表,它存储了公司第一季度每个月的收入。列表中的每一个元素是一个元组,元组的第一项是月份,第二项是销售额,现在想要按照它的销售额来从高到低排序。如果直接调用sort函数,它会按照元组中第一项的字符串顺序进行排序。

revenue = [(‘1月’, ), (‘2月’, ), (‘3月’, )]

revenue.sort(reverse=True) # 排序后为 [('3月', ), ('2月', ), ('1月', )] 

这显然不对,2月的收入比1月低,应该排到最后。这时应该传递key参数

讯享网revenue.sort(reverse=True, key=lambda x:x[1]) # 排序后为 [('3月', ), ('1月', ), ('2月', )] 

key参数接收的是一个函数,我们在这里给它传递了一个匿名函数,关于函数的使用后面再学习,这里我们需要了解是通过key参数,我们指定了sort排序的依据,就是每个元组里面的第二项。

8、copy 函数
lst1 = [1, 2, 3] lst2 = lst1 lst1.append(4) 

上面的代码执行完成以后,lst 和 lst2的值都变成了 [1, 2, 3, 4] ,但我们在代码里面只修改了lst1, lst2的值也跟着改变了,这不符合我的预期,可能会导致bug。所以,如果我们想要创建一个跟lst1一模一样的新列表,且不再受它以后操作的影响,就可以使用copy函数

讯享网lst1 = [1, 2, 3] lst2 = lst1.copy() lst1.append(4) print(lst1) # [1, 2, 3, 4] print(lst2) # [1, 2, 3] 
小讯
上一篇 2025-03-17 09:13
下一篇 2025-03-19 13:38

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/123475.html