列表推导式
列表推导式即用可迭代对象,依次生成列表内元素的方式
语法
推导式
[表达式 for 变量 in 可迭代对象]
[表达式 for 变量 in 可迭代对象 if 条件表达式]
# 生成两个列表,list2加了要求x为偶数的条件
list1 = [x**3 for x in range(1,11)]
list2 = [x**3 for x in range (1,11) if x %2 == 0]
所得结果如图所示:
等价形式(推导式所包含逻辑)
k=0
for x in range(1,11):
list1[k] = x**3
k += 1
print(list1)
同理,第二个只消加入if条件即可,这就留给读者朋友来完成吧。
字典推导式
语法
也是为了生成所要求的字典形式,而设计的一种简单格式,其形式大致与列表类似
推导式
语法:
{键表达式:值表达式 for 变量 in 可迭代对象}
{键表达式:值表达式 for 变量 in 可迭代对象 (if 条件表达式)}
# 生成两个字典
names = ['张三','李四','王五']
ages = [23,33,43]
# zip()函数用于将可迭代对象作为参数,将对象中对应的元素打包为一个个元组
dict1 = {name:age for name,age in zip(names,ages) }
print(dict1)
numbers = [1001, 1002, 1003, 1004]
names = ["Tom", 'David', 'Jesica', 'Jerry']
students = {numbers[i] : names[i] \
for i in range(4) \
if numbers[i] % 2 == 0}
print(students)
等价语法
numbers = [1001, 1002, 1003, 1004]
names = ["Tom", 'David', 'Jesica', 'Jerry']
for i in range(4):
if numbers[i] % 2 == 0:
students[numbers[i]] = names[i]
print(students)
本人小白 ,初次使用,如有不到之处望各位大佬指正!!!主要是为了加深自己的对知识点的印象