列表类型高级用法
【摘要】
列表类型高级用法
1.概述
这篇文章总结日常开发使用列表类型的一些技巧,不断提升代码的可阅读性和优雅性。
2.列表常用操作
2.1.创建和读取列表元素
1.创建列表有两种方式
列表是一种有序的...
列表类型高级用法
1.概述
这篇文章总结日常开发使用列表类型的一些技巧,不断提升代码的可阅读性和优雅性。
2.列表常用操作
2.1.创建和读取列表元素
1.创建列表有两种方式
列表是一种有序的可变容器类型,创建列表类型有两种方式,字面量语法和list()内置函数。
# 使用[]字面量来创建列表,同时还可以为列表赋值。
number = [1, 2, 3, 4]
print(f'使用[]字面量来创建列表,输出列表值:{number}')
#输出结果
使用[]字面量来创建列表,输出列表值:[1, 2, 3, 4]
# 使用list()内置函数创建列表
one_list = list('1')
print(f'使用list()内置函数创建列表,输出列表值:{one_list}')
#输出结果
使用list()内置函数创建列表,输出列表值:['1']
# 注意内置函数只能把任意一个可迭代的对象转为列表,也就是说不可迭代的对象不能转为列表。
# 1是int类型,他不是一个可迭代对象,因此不能转为列表,运行后报类型错误信息:TypeError: 'int' object is not iterable
# int_list = list(1)
# 使用内置函数创建列表初始化多个值可以使用元组实现
many_list = list(('one','two'))
print(f'使用内置函数创建列表初始化多个值: {many_list}')
# 输出结果
使用内置函数创建列表初始化多个值: ['one', 'two']
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
2.切片方式获取列表元素
# 切片方式获取列表元素
number = [1, 2, 3, 4, 5]
print('使用切片通过索引获取列表中对应的值:', number[0])
print('获取列表所有元素:', number[:])
print('获取列表指定开始元素到列表结束值:', number[0:])
print('获取列表开始到结束前一个值:', number[:-1])
print('获取列表最后一个值:', number[-1])
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3.遍历列表同时获取下标
当你使用for循环遍历列表时,默认会获取列表中所有的成员。假如在遍历列表的同时,你想获取循环的下标,可以使用内置函数
enumerate()包裹列表对象。
enumerate()函数适用于任何“可迭代对象” , 因此它不光可以用于列表,还可以用于元组,字典,字符串等其他对象。
# 遍历时获取下标
numbers = [1, 2, 3]
for index, i in enumerate(numbers):
print(f'列表下标:{index},列表值:{i}')
# enumberate有一个可选参数,可以指定下标初始值
for index, i in enumerate(numbers, start=10):
print(f'列表下标:{index},列表值:{i}')
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
3.列表高级用法
当我们处理某个列表时,一般有两个目的:修改已有成员的值,根据规则剔除某些成员。
3.1.列表推导式
举个例子,有个列表存放了好多的数字,我要剔除里面所有奇数,并将所有数字乘以100。它的实现有两种方式,一个是传统方式,一个是推导式。
numbers = [1, 2, 3, 4, 5, 6, 7]
# 普通方式实现
def remove_odd_mul_100(number: list):
duble_list = []
for i in number:
if i % 2 == 1:
continue
duble_list.append(i * 100)
return duble_list
print('普通方法需要7行才能实现', remove_odd_mul_100(numbers))
# 输出值
普通方法需要7行才能实现 [200, 400, 600]
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
numbers = [1, 2, 3, 4, 5, 6, 7]
l = [n * 100 for n in numbers if n % 2 == 0]
print(f'列表推导式一行就可以实现:{l}')
# 输出值
列表推导式一行就可以实现:[200, 400, 600]
- 1
- 2
- 3
- 4
- 5
上面代码演示了两种方式实现剔除奇数,并将所有数字乘以100,相比传统方式,列表推导式把几类操作压缩到了一起,结果就是代码量更少,并维持了很高的可读性。列表推导式可以算得上处理列表数据的一把利器。
3.2.理解列表的可变性
文章来源: brucelong.blog.csdn.net,作者:Bruce小鬼,版权归原作者所有,如需转载,请联系作者。
原文链接:brucelong.blog.csdn.net/article/details/126431130
【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)