只适合用于构建比较复杂且有规律的列表,超过三层循环才能构建成功的,就不建议用列表推导式了
不能使用debug模式
循环模式:[变量 for 变量 in 可迭代对象]
# 1-100之间的偶数写入列表
li=[i for i in range(2,101,2)]
print(li)
#打印出小仙女1-100号
li1=[f‘小仙女{i}号‘ for i in range(1,101)]
print(li1)
#将10以内的整数平方写入列表
li2=[i**2 for i in range(1,11) ]
print(li2)
筛选模式:[变量 for 变量 in 可迭代对象 if 条件]
#打印出30以内能被3整除的数
li3=[i for i in range(1,31) if i%3==0]
print(li3)
#过滤长度小于3的字符串列表,并将剩下的转换成大写字母
li=[‘baoli‘,‘wang‘,‘li‘,‘yn‘]
li1=[i.upper() for i in li if len(i)>3 ]
print(li1)
#循环出列表中有两个e的元素
name = [["Tom", "Billy", "Thomas"," Jefferson", "Andrew", "Wesley", "Stephen", "Joe"],
[" Alice ", "Jill"," Anna ", "Wendy", "Jennifer", "sherry", "Eva"]]
li2=[j for i in name for j in i if j.count(‘e‘)==2]
print(li2)
obj=(i for i in range(1,11))
for j in obj: #for 循环的时候就已经转换成迭代器
print(j)
list1=[‘xiaoxiannv‘,‘xiaoyun‘,‘wangminmin‘,‘xiaotong‘]
list2=[‘小仙女‘,‘小云‘,‘王敏敏‘,‘小彤‘]
dic={list1[i]:list2[i] for i in range(len(list1))}
print(dic)
得:{‘xiaoxiannv‘: ‘小仙女‘, ‘xiaoyun‘: ‘小云‘, ‘wangminmin‘: ‘王敏敏‘, ‘xiaotong‘: ‘小彤‘}
tu={i for i in range(1,11)}
print(tu)
原文:https://www.cnblogs.com/xiaoxiannvdbky/p/14844737.html