列表推导式、元组推导式、字典推导式、集合推导式

1、列表推导式、元组推导式、字典推导式、集合推导式

列表推导式可以利用 range 区间、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。

1.1 列表推导式

列表推导式的语法格式如下:

表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] ] # [if 条件表达式] 不是必须的,可以使用,也可以省略。
a_range = range(10)
# 对a_range执行for表达式
a_list = [x * x for x in a_range]
# a_list集合包含10个元素
print(a_list)

输出结果:
[0 , 1 , 4 , 9 , 16 , 25 , 36 , 49 , 64, 81]

1.2 元组推导式

(表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] )
a = (x for x in range(1,10))
print(tuple(a))

运行结果为:
(1, 2, 3, 4, 5, 6, 7, 8, 9)

1.3 字典推导式

{表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]}
listdemo = ['Jack','Tom']
#将列表中各字符串值为键,各字符串的长度为值,组成键值对
newdict = {key:len(key) for key in listdemo}
print(newdict)

输出结果:
{'Jack': 4, 'Tom': 3}

1.4 集合推导式

{ 表达式 for 迭代变量 in 可迭代对象 [if 条件表达式] }

集合推导式和字典推导式的格式完全相同,那么给定一个类似的推导式,如何判断是哪种推导式呢?

最简单直接的方式,就是根据表达式进行判断,如果表达式以键值对(key:value)的形式,则证明此推导式是字典推导式;反之,则是集合推导式。

setnew = {i**2 for i in range(3)}
print(setnew)

输出结果:
{0, 1, 4}
posted @ 2023-03-09 21:50  饮一杯天上水  阅读(197)  评论(0)    收藏  举报