条件,列表,字典推导式

条件,列表,字典推导式,第1张

三大推导式
  • 推导式
  • 条件推导式
  • 列表推导式
  • 字典推导式
  • 结束语

推导式

推导式(又称解析器),是 Python 独有的一种特性。使用推导式可以快速生成列表、元组、字典以及集合类型的数据。

条件推导式

python条件推导式是从一个或者多个迭代器快速简洁地创建数据类型的一种方法,它将循环和条件判断结合,从而避免语法冗长的代码,提高代码运行效率。能熟练使用推导式也可以间接说明你已经超越了 Python 初学者的水平。

# 萌新写代码
x = 5
if x % 2 == 0
	print("x为偶数")
else:
	print("x为奇数")

# 大佬
x = 15
print("大佬说x为偶数" if x % 2 == 0 else print("大佬说x为奇数"))
列表推导式

列表推导式是将条件推导式和循环、元组、列表、字典和集合等数据类型,快速生成一个满足指定需求的列表。
列表推导式有两种格式:
格式一:

	[返回值 for x in y if 条件表达式]

 # 例一
numbers = []

for i in range(21):
    if i % 2 == 0:	# 条件表达式
        j = i * 10  # 返回值
        numbers.append(j)
print(numbers)

 # 格式1

numbers2 = [i * 10 for i in range(21) if i % 2 == 0]
print(numbers2)

格式二:

	[返回值 if 条件表达式 else 不成立后的输出 for x in y ]
	
numbers = []

for i in range(21):
    if i % 2 == 0:
        j = i * 10 # 偶数乘以10
        numbers.append(j)
    else:
        j = i * 100 # 奇数乘以100
        numbers.append(j)
print(numbers)

# 格式二

print(i * 10 if i % 2 == 0 else j * 100 for i in range (21))
numbers = []

for i in range(21):
    if i % 2 == 0:
        j = i * 10
        numbers.append(j)
    else:
        j = i * 100
        numbers.append(j)
print(numbers)

numbers1 = [i * 10 if i % 2 == 0 else i * 100 for i in range(21)]
print(numbers1)
字典推导式

字典推导式的格数与列表推导式格式非常相似。唯一不同点:字典推导式用的是大括号{ }。
格式一:

# 将字典中的所有键值对历遍。
# key_exp:在for循环中,如果条件表达式condition成立(即条件表达式成立),返回对应的key,value并作key_exp,value_exp处理
{key_a:value_b for key,value in dict.items() if condition(条件表达式)}

# 打印key为小写字母的键值对

# 一般方法
dict1 = {}
dict2 = {"name": "小刘", "id": "哈尔滨", "Work": "学生", "专业": "自动化", "e": "True"}

for key, value in dict2.items():
    if key.islower():
        dict1[key] = value
print(dict1)

# 格式一:
 {key: value for key, value in dict2 if key.islower()}

格式二:

	{key_a:value_b if condition(条件表达式) else value_b for key,value in dict.items()}

dict1 = {}
dict2 = {"name": "小刘", "id": "哈尔滨", "Work": "学生", "专业": "自动化", "e": "True"}
# 打印字典 dict2 中所有key小写开头的键值对。
for key, value in dict2.items():
	if key.islower():
		dict1[key] = value
	else:
		print("key开头不为大写")

# 格式二:

{key ,value if key.islower else print("key开头不为大写") for key, value in dict2.items()}
		
	
结束语

不管是列表推导式还是字典推导式,除了符号外,格式都相似的,多训练,多敲代码,熟能生巧。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/869174.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-13
下一篇 2022-05-13

发表评论

登录后才能评论

评论列表(0条)

保存