(期末考试卷一卷)python列表推导式详解

(期末考试卷一卷)python列表推导式详解

  • 普通的推导式
list_b = [b for b in range(5)]
print(list_b)
# 与下面的代码等价:
list_a = list()
for a in range(5):
    list_a.append(a)
print(list_a)
[0, 1, 2, 3, 4]
[0, 1, 2, 3, 4]

-那什么是生成器表达式呢?

print(b for b in range(5)) # b for b in range(5)就是生成器表达式
<generator object <genexpr> at 0x000001A78BF8AA50>

-可以通过list()函数将生成器转换为列表

print(list(b for b in range(5)))
[0, 1, 2, 3, 4]
  • 带if判断的推导式
list_d = [d for d in range(6) if d % 2 != 0]
print(list_d)
# 与下面的代码等价:
list_d=list()
for d in range(6):
    if d%2!=0:
        list_d.append(d)
print(list_d)
[1, 3, 5]
[1, 3, 5]
  • 两个for循环的推导式
list_e = [(e, f * f) for e in range(3) for f in range(5, 15, 5)]
print(list_e)
# 与下面的代码等价:
list=[]
for e in range(3):
    for f in range(5,15,5):
        list.append((e,f**2))
print(list)
[(0, 25), (0, 100), (1, 25), (1, 100), (2, 25), (2, 100)]
[(0, 25), (0, 100), (1, 25), (1, 100), (2, 25), (2, 100)]
  • 嵌套加判断的推导式
list_g = [[x for x in range(g - 3, g)] for g in range(22) if g % 3 == 0 and g != 0]
print(list_g)
# 与下面的代码等价:
list1=[]
for g in range(22):
    if g % 3 == 0 and g != 0:
        list1.append([x for x in range(g - 3, g)])
print(list1)
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20]]
[[0, 1, 2], [3, 4, 5], [6, 7, 8], [9, 10, 11], [12, 13, 14], [15, 16, 17], [18, 19, 20]]
  • (推广)字典的基本推导式
dict_a = {key: value for key in 'python' for value in range(2)}
print(dict_a)
# 对同一个key值多次赋予value值,取最后赋予的值
l={}
for key in 'python':
    for value in range(2):
        l[key]=value
print(l)
{'p': 1, 'y': 1, 't': 1, 'h': 1, 'o': 1, 'n': 1}
{'p': 1, 'y': 1, 't': 1, 'h': 1, 'o': 1, 'n': 1}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白夜的月亮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值