Python当中有如下的推导式:
-
列表推导式
-
字典推导式
-
集合推导式
-
生成器推导式
推导式的作用是可以快速地生成一个列表、字典或者集合,同时简化代码。
下面我们来介绍一下python中的推导式:
1 列表推导式
列表推导式的语法:
[结果 for 变量 in 可迭代对象] 或者 [结果 for 变量 in 可迭代对象 if 布尔表达式]
举例:
# 普通形式
## 以列表的形式输出100以内的正偶数
list1=[]
for i in range(1,101):
if i%2==0:
list1.append(i)
print(list1)
# 列表推导式举例
# 把100以内(含)的偶数放到列表中输出
print([i for i in range(1,101) if i%2==0])
# 列表推导式不加if
print([i for i in range(2,101,2)])
# 统计字符串中只出现一次的字符,以列表返回字符串
str1="helloworld"
print([i for i in str1 if str1.count(i)==1])
2 字典推导式
语法:
{结果 for 变量 in 可迭代对象}
或者
{结果 for 变量 in 可迭代对象 if 布尔表达式};
注意字典推导式的结果是键值对,即
key:value
举例:
tupl1=(("姓名","张三"),("年龄",20),("体重",190),("身高",180))
print({i:j for i,j in tupl1})
#交换key和value的位置
print({j:i for i,j in tupl1})
#加判断条件
print({i:j for i,j in tupl1 if j !=190})
#统计字符串中每个字符出现的次数,以字典返回
str1="helloworld"
print({i:str1.count(i) for i in str1})
#统计字符串中只出现一次的字符,以字典返回字符及出现次数
str1="helloworld"
print({i:str1.count(i) for i in str1 if str1.count(i)==1})
3 集合推导式
语法:{结果 for 变量 in 可迭代对象}
或者 {结果 for 变量 in 可迭代对象 if 布尔表达式}
;集合推导式跟字典推导式的区别是:字典推导式的结果是键值对,集合推导式的结果是单个结果。
举例:
dict1={"姓名":"张三","年龄":20,"体重":180,"身高":180}
print({x for x in dict1.keys()})
print({x for x in dict1.values()})
# 加if判断,只取int类型的数据
print({x for x in dict1.values() if type(x)==int})
4 生成器推导式
语法:
(结果 for 变量 in 可迭代对象)
或者
(结果 for 变量 in 可迭代对象 if 布尔表达式)
举例:
gen_1 = (a**2 for a in range(1,10))
#用元组形式展示数据
print(tuple(gen_1))
标签:推导,迭代,python,str1,列表,print,历程,字典
From: https://blog.csdn.net/Sodagreen_yyds/article/details/137466383