python的一大特点就是语法简洁,代码量少,除了内置函数和模块赋予的强大功能外,其丰富的语法糖也是减少代码量的关键,本文针对list这一数据结构,汇总了常见的操作技巧
1. 遍历列表
遍历指的是循环处理列表中的每一个元素,最基本的遍历方法就是for in循环了,用法如下
a = [1, 2, 3, 4, 5]for i in a:
print(i)
另外,针对两种特殊的遍历场景,python还提供了简洁的处理方法,场景1,同时遍历下标和对应的元素。在其他语言中,解决思路是通过遍历下标,再通过下标获取对应的值,在python中,通过enumerate函数可以轻松实现同时获取下标和对应的值,用法如下
for i, v in enumerate(a):print(i, v)
场景2,同时遍历两个list, 在其他语言中同样也是通过遍历下标来实现,在python中通过zip函数实现,代码量更少,用法如下
a = [1, 2, 3]b = [4, 5, 6]
for x, y in zip(a, b):
print(x, y)
2. 列表的生成
对于列表元素的遍历,一个经典的使用场景是遍历一个列表,对每个元素稍加处理,结果另存为一个新的列表,你可能会写出如下代码
new =[ ]for i in old:
new.append(i + 1)
对于上述场景,python中有更加简洁的实现方式,第一种方法称之为列表生成式,最基本的用法如下
>>> a = [1, 2, 3, 4, 5]>>> b = [i ** 2 for i in a]
>>> b
[1, 4, 9, 16, 25]
上述代码遍历列表a, 求每个元素的乘方,将结果存为列表b, 可以看到,一行代码就可以搞定。列表生成式还可以更加强大,比如添加过滤条件,用法如下
>>> a = [1, 2, 3, 4, 5]>>> b = [i ** 2 for i in a if i % 2 == 0]
>>> b
[4, 16]
上述代码同样是遍历列表a, 但是只筛选其中的偶数项来处理。列表生成式还可以在生成结果时添加简单的逻辑判断, 用法如下
>>> a = [1, 2, 3, 4, 5]>>> b = [i ** 2 if i % 2 == 0 else i ** 3 for i in a]
>>> b
[1, 4, 27, 16, 125]
列表生成式支持多层for循环, 用法如下
>>> a = [1, 2, 3]>>> b = [4, 5, 6]
>>> c = [m * n for m in a for n in b]
>>> c
[4, 5, 6, 8, 10, 12, 12, 15, 18]
列表生成式可以嵌套,用法如下
>>> c = [[m * n for m in a]for n in b]>>> c
[[4, 8, 12], [5, 10, 15], [6, 12, 18]]
对于简单的循环加逻辑判断,用代码生成式是最佳选择。
3. 解列表
将列表中的元素赋值给各个变量,称之为解列表,基本用法如下
>>> a, b, c, d = [1, 2, 3, 4]上述代码将列表中的元素依次赋值给4个变量,可以看到,这种写法在处理个数较少的列表是比较适用,如果我们只想要其中的某几个值,可以用双下划线__作为变量名,对应的值就会被丢弃,用法如下
a, __, __, d = [1, 2, 3, 4]在此基础上,还有一种进阶用法,称为星号解压缩,基本用法如下
a, *__, d = [1, 2, 3, 4]星号起到了通配符的作用,可以匹配任意个元素,上述代码中的星号匹配中间的2个变量。
当然,对于列表的操作技巧远不止这几种,这里列出的几种比较基础,掌握起来比较轻松。
·end·
—如果喜欢,快分享给你的朋友们吧—
关注我们,解锁更多精彩内容!