Angelina_Jolie 发表于 2021-10-13 09:40:20

列表推导式

[输出 循环 判断]
想看看你们的理解

傻眼貓咪 发表于 2021-10-13 15:08:40

本帖最后由 傻眼貓咪 于 2021-10-13 15:10 编辑

Python 推导式 comprehensions(又称解析式)

推导式不是列表专有特性,除了列表(list),集合(set)、字典(dictionary)、元祖(tuple)都可以用推导式,如下:a = {i:i for i in range(5)}    # 字典 dictionary
b = {i for i in range(5)}      # 集合 set
c = tuple(i for i in range(5)) # 元祖 tuple
d =       # 列表 list

print(a)
print(b)
print(c)
print(d){0: 0, 1: 1, 2: 2, 3: 3, 4: 4}
{0, 1, 2, 3, 4}
(0, 1, 2, 3, 4)

推导式格式:[表达式(Expression) 可迭代的(Iterable)条件语句:可选(condition)],如下:
范例 1:arr = # 赋值新列表 arr 值为推导式的结果

# i 为表达式
# for i in range(20) 为可迭代
# if i%2 为条件语句(这里的 i%2 表示如果 i除2得余数 0,则返回假 False,否则返回真 True,除了 0 所有数字都是真 True)范例 2: # 这里没有赋值任何东西,单纯推导式,但还是会执行打印,因为 print() 是函数(有括号表示执行)

# print(i, end = ' ') 为表达式,这里的 end 是 print() 参数,表示打印最后是什么(默认是换行 \n)
# for i in range(10) 为可迭代的
# 这里没有条件语句(推导式条件语句可有可无)0 1 2 3 4 5 6 7 8 9范例 3:arr = [(i, j) for i in range(2) for j in range(2)]

# 以上推导式如同以下代码:

arr = []
for i in range(2):
    for j in range(2):
      arr.append((i, j))

# (i, j) 为表达式(表示元祖)
# for i in range(2) for j in range(2) 为 2个 可迭代的,当然你想要 5个 或 10个 都可以

print(arr)[(0, 0), (0, 1), (1, 0), (1, 1)]

tianlai7266 发表于 2021-10-19 10:36:42

{:10_256:}

yangyiheng 发表于 2021-10-24 12:56:33

{:10_243:}

老笨比了 发表于 2021-10-24 13:34:22

{:5_106:}

100gram 发表于 2021-10-24 14:05:02

{:10_256:}

1molHF 发表于 2021-10-24 17:45:12

{:10_256:}

无尽紫心 发表于 2021-10-24 21:21:41

{:10_249:}

无尽紫心 发表于 2021-10-24 21:25:49

芜湖

阿萨德按时 发表于 2021-10-25 09:11:03

{:10_277:}

鸦羽 发表于 2021-10-25 18:20:44

{:10_282:}

阿萨德按时 发表于 2021-10-26 08:39:08

{:10_277:}

Python初学者8号 发表于 2021-10-26 09:17:47

>>> a =
>>> a
['我', '是', '你', '爹']{:5_109:}

也.. 发表于 2021-10-26 09:22:36

{:5_109:}

basketmn 发表于 2021-10-26 21:01:23

Python初学者8号 发表于 2021-10-26 09:17


你这么干,不是找骂呢

18408238295 发表于 2021-10-29 16:20:13

{:10_256:}

华星 发表于 2021-11-21 15:29:39

11
页: [1]
查看完整版本: 列表推导式