前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python列表推导式

Python列表推导式

作者头像
北山啦
发布2022-11-27 11:47:07
4620
发布2022-11-27 11:47:07
举报
文章被收录于专栏:北山啦的博客

Python列表推导式

列表推导式举例:Python打印99乘法表

代码语言:javascript
复制
print('\n'.join([''.join(['%s*%s=%-2s '%(y,x,x*y)for y in range(1,x+1)])for x in range(1,10)]))
在这里插入图片描述
在这里插入图片描述
代码语言:javascript
复制
print('\n'.join([' '.join([f"{j}x{i}={i*j}" for j in range(1, i + 1)]) for i in range(1, 10)]))

列表推导式官网文档链接

一、列表推导式

列表推导式书写形式:

[表达式 for 变量 in 列表]

[表达式 for 变量 in 列表 if 条件]

1、列表中创建列表

代码语言:javascript
复制
# 计算0~9所有偶数平方
squares = []
for x in range(10):
    if x%2 == 0:
        squares.append(x**2)
代码语言:javascript
复制
squares
代码语言:javascript
复制
[0, 4, 16, 36, 64]

2、如果使用列表推导式,代码会精简、易读很多

代码语言:javascript
复制
squares = [x**2 for x in range(10) if x%2==0]
代码语言:javascript
复制
squares
代码语言:javascript
复制
[0, 4, 16, 36, 64]

3、可以有两个for循环遍历两个变量

代码语言:javascript
复制
# 注意,这里的x和y没有关系
[(x, y) for x in [1,2,3] for y in [3,1,4] if x != y]
代码语言:javascript
复制
[(1, 3), (1, 4), (2, 3), (2, 1), (2, 4), (3, 1), (3, 4)]
代码语言:javascript
复制
names = [['Tom', 'Billy', 'Jefferson', 'Andrew', 'Wesley', 'Steven', 'Joe'],
         ['Alice', 'Jill', 'Ana', 'Wendy', 'Jennifer', 'Sherry', 'Eva']]

print([name for lst in names for name in lst if name.count('e') >= 2])  # 注意遍历顺序,这是实现的关键

4、结果元素可以使用各种函数加工

代码语言:javascript
复制
[(str(x), x**2) for x in range(6)]
代码语言:javascript
复制
[('0', 0), ('1', 1), ('2', 4), ('3', 9), ('4', 16), ('5', 25)]

5、可以嵌套遍历两层结构

代码语言:javascript
复制
# 注意,这里的x和y是有关系的
vec = [[1,2,3], [4,5,6], [7,8,9]]
[y for x in vec for y in x]
代码语言:javascript
复制
[1, 2, 3, 4, 5, 6, 7, 8, 9]

6、if-else

代码语言:javascript
复制
result = ["偶" if i % 2 == 0 else "奇" for i in range(1, 10+1) ]
print(result)

输出结果:[‘奇’, ‘偶’, ‘奇’, ‘偶’, ‘奇’, ‘偶’, ‘奇’, ‘偶’, ‘奇’, ‘偶’]

二、集合set推导式

将中括号换成大括号,就变成了集合set推导式

代码语言:javascript
复制
# 返回的是去重元素的集合
a = {x for x in 'abracadabra' if x not in 'abc'}
代码语言:javascript
复制
a
代码语言:javascript
复制
{'d', 'r'}

三、字典dict推导式

将中括号换成大括号,并且返回元素是Key:Value形式,就变成了字典dict推导式

代码语言:javascript
复制
# 返回的是一个新的字典
{str(x): x**2 for x in (2, 4, 6)}
代码语言:javascript
复制
{'2': 4, '4': 16, '6': 36}

将一个字典的key和value对调

代码语言:javascript
复制
mcase = {'a': 10, 'b': 34}
mcase_frequency = {mcase[k]: k for k in mcase}
print(mcase_frequency)
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-06-08,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Python列表推导式
    • 一、列表推导式
      • 1、列表中创建列表
      • 2、如果使用列表推导式,代码会精简、易读很多
      • 3、可以有两个for循环遍历两个变量
      • 4、结果元素可以使用各种函数加工
      • 5、可以嵌套遍历两层结构
      • 6、if-else
    • 二、集合set推导式
      • 三、字典dict推导式
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档