前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python列表常见操作技巧汇总

python列表常见操作技巧汇总

作者头像
生信修炼手册
发布2020-05-07 16:31:18
4160
发布2020-05-07 16:31:18
举报
文章被收录于专栏:生信修炼手册生信修炼手册

python的一大特点就是语法简洁,代码量少,除了内置函数和模块赋予的强大功能外,其丰富的语法糖也是减少代码量的关键,本文针对list这一数据结构,汇总了常见的操作技巧

1. 遍历列表

遍历指的是循环处理列表中的每一个元素,最基本的遍历方法就是for in循环了,用法如下

代码语言:javascript
复制
a = [1, 2, 3, 4, 5]
for i in a:
    print(i)

另外,针对两种特殊的遍历场景,python还提供了简洁的处理方法,场景1,同时遍历下标和对应的元素。在其他语言中,解决思路是通过遍历下标,再通过下标获取对应的值,在python中,通过enumerate函数可以轻松实现同时获取下标和对应的值,用法如下

代码语言:javascript
复制
for i, v in enumerate(a):
    print(i, v)

场景2,同时遍历两个list, 在其他语言中同样也是通过遍历下标来实现,在python中通过zip函数实现,代码量更少,用法如下

代码语言:javascript
复制
a = [1, 2, 3]
b = [4, 5, 6]
for x, y in zip(a, b):
    print(x, y)
2. 列表的生成

对于列表元素的遍历,一个经典的使用场景是遍历一个列表,对每个元素稍加处理,结果另存为一个新的列表,你可能会写出如下代码

代码语言:javascript
复制
new =[ ]
for i in old:
    new.append(i + 1)

对于上述场景,python中有更加简洁的实现方式,第一种方法称之为列表生成式,最基本的用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3, 4, 5]
>>> b = [i ** 2 for i in a]
>>> b
[1, 4, 9, 16, 25]

上述代码遍历列表a, 求每个元素的乘方,将结果存为列表b, 可以看到,一行代码就可以搞定。列表生成式还可以更加强大,比如添加过滤条件,用法如下

代码语言:javascript
复制
>>> a = [1, 2, 3, 4, 5]
>>> b = [i ** 2 for i in a if i % 2 == 0]
>>> b
[4, 16]

上述代码同样是遍历列表a, 但是只筛选其中的偶数项来处理。列表生成式还可以在生成结果时添加简单的逻辑判断, 用法如下

代码语言:javascript
复制
>>> 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循环, 用法如下

代码语言:javascript
复制
>>> 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]

列表生成式可以嵌套,用法如下

代码语言:javascript
复制
>>> c = [[m * n  for m in a]for n in b]
>>> c
[[4, 8, 12], [5, 10, 15], [6, 12, 18]]

对于简单的循环加逻辑判断,用代码生成式是最佳选择。

3. 解列表

将列表中的元素赋值给各个变量,称之为解列表,基本用法如下

代码语言:javascript
复制
>>> a, b, c, d = [1, 2, 3, 4]

上述代码将列表中的元素依次赋值给4个变量,可以看到,这种写法在处理个数较少的列表是比较适用,如果我们只想要其中的某几个值,可以用双下划线__作为变量名,对应的值就会被丢弃,用法如下

代码语言:javascript
复制
a, __, __, d = [1, 2, 3, 4]

在此基础上,还有一种进阶用法,称为星号解压缩,基本用法如下

代码语言:javascript
复制
a, *__, d = [1, 2, 3, 4]

星号起到了通配符的作用,可以匹配任意个元素,上述代码中的星号匹配中间的2个变量。

当然,对于列表的操作技巧远不止这几种,这里列出的几种比较基础,掌握起来比较轻松。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-01,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 生信修炼手册 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 遍历列表
  • 2. 列表的生成
  • 3. 解列表
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档