1、打印30以内能被3整除的数,放到一个列表里
result = [i for i in range(30) if i%3 == 0] #i%3能被3整除的
#第一个i是输出, 第二个是取值范围 result是列表
print(result)
2、打印30以内能被3整除的平方
print([i*i for i in range(30) if i%3 == 0])
#如果不是需要所有的数,就不需要if判断
打印列表中被3整除的数的平方:
lst = [2.43, 6.666,9,2.2324]
print([i*i for i in lst if i%3 == 0])
3、 列表里的浮点数保留两位小数。整数保留原样
lst = [2.43, 6.666,9,2.2324] test_one = [round(i,2) for i in lst] print("保留小数点后两位:",test_one)
4、获取lst2里的奇数
lst2 = [[1,2,3],[4,5,6]] li = [] for lst in lst2: for i in lst: if i%2: li.append(i) print(li)
方法二: 嵌套推导式:
print([i for lst in lst2 for i in lst if i%2])
5、集合推导式:自动去重
str1 = "asdoferrenwwde" print(set(str1)) print({i for i in str1})#{}集合推导式
6、字典推导式
str1 = "seeeeeeeeeeeeeeeeedfffsdv" result = ({i:str1.count(i) for i in str1}) #i:key 、str1.count(i):value #items()代表取到字典的key和value值,j:i表示key和value值换位置 print({j:i for i,j in result.items()}) q1 = ['a','ab','abc','abcd','abcde'] print({i.upper() for i in q1 if len(i)>=3}) x = [i for i in range(0,5) if i%2==0] y = [i for i in range(0,5) if i%2] result = [(i,j)for i in x for j in y] print(result) q3 = {'a':10,'b':34} print({j:i for i,j in q3.items()}) q4 = {'B':3,'a':1,'b':6,'c':3,'A':4} print({i.lower():q4.get(i.lower(),0) + q4.get(i.upper(),0) for i,j in q4.items()})