一、列表推导式:
a_range = range(10)
b_range = range(10)
# 单层for
a_list = [x * x for x in a_range]
# 单层for,单层if
a_list1 = [x * x for x in a_range if x % 2 == 0]
# 单层for,单层if else
a_list2 = [x * x if x % 2 == 0 else '@' for x in a_range]
# 单层for,多层if else
a_list3 = [x * x if x % 2 == 0 else '@' if x % 2 == 1 else '$' if x % 2 == 2 else '&' for x in a_range]
# 多层for
a_list4 = [x * y for x in a_range for y in b_range]
# 多层for,单层if
a_list5 = [x * y for x in a_range for y in b_range if x == y]
# 多层for,单层if else
a_list6 = [x * y if x == y else '@' for x in a_range for y in b_range]
# 多层for,多层if else
a_list7 = [x * y if x == y else '@' if x - y == 1 else '$' if x + y == 2 else '&' for x in a_range for y in b_range]
二、集合推导式:(原理与列表推导式基本相同,只不过结果会去重)
a_range = range(10)
b_range = range(10)
# 单层for
a_list1 = {x * x for x in a_range}
# 单层for,单层if
a_list2 = {x * x for x in a_range if x % 2 == 0}
# 单层for,单层if else
a_list3 = {x * x if x % 2 == 0 else '@' for x in a_range}
# 单层for,多层if else
a_list4 = {x * x if x % 2 == 0 else '@' if x % 2 == 1 else '$' if x % 2 == 2 else '&' for x in a_range}
# 多层for
a_list5 = {x * y for x in a_range for y in b_range}
# 多层for,单层if
a_list6 = {x * y for x in a_range for y in b_range if x == y}
# 多层for,单层if else
a_list7 = {x * y if x == y else '@' for x in a_range for y in b_range}
# 多层for,多层if else
a_list8 = {x * y if x == y else '@' if x - y == 1 else '$' if x + y == 2 else '&' for x in a_range for y in b_range}
三、字典推导式:(原理与上述基本相同)
这里引用一篇博文:python中字典推导式_蓝星部队的博客-CSDN博客_字典推导式