目录
1、列表推导式-最简形式(list comprehensions):
1、列表推导式-最简形式(list comprehensions):
[expression for item in list] 等价于
for item in list:
expression
list_val = []
for i in range(1,6):
list_val.append(i**2)
print(list_val)
#等价于
new_list = [i**2 for i in range(1,6)]
print(new_list)
运行结果:
与大小写转换之间的运用:
word_list = ['I', 'love', 'Python']
print([i.upper() for i in word_list])
print([i.lower() for i in word_list])
print([i.title() for i in word_list])
运行结果:
2、列表推导式-过滤条件形式:
(1)只有if形式:
[expression for item in list if conditional] 等价于
for item in list:
if conditional:
expression
list_val = []
for i in range(21):
if i % 2 == 0:
list_val.append(i)
print(list_val)
# 等价于
new_list = [i for i in range(21) if i % 2 == 0]
print(new_list)
运行结果:
(2)if-else形式:
[expression1 if conditional else expression2 for item in list] 等价于
for item in list:
if conditional:
expression1
else:
expression2
names = ['AndyFung', 'JackMa', 'BillGates']
list_val = []
for i in names:
if len(i) < 8:
list_val.append(i.lower())
else:
list_val.append(i.upper())
print(list_val)
# 等价于
new_list = [i.lower() if len(i) < 8 else i.upper() for i
in names]
print(new_list)
运行结果:
区别:只有if的时候,if是在for循环后面的;如果是if-else,它们是在for循环前面的。
(3)列表推导式-循环嵌套形式:
[expression for i in list1 for j in list2] 等价于
for i in list1:
for j in list2:
expression
list_val = []
for i in '高富帅':
for j in '白富美':
list_val.append(i+j)
print(list_val)
# 等价于
new_list = [i+j for i in '高富帅' for j in '白富美']
print(new_list)
运行结果: