推导式可以让代码更简洁,并且可以增加可读性和执行效率。
列表推导(List Comprehensions)
[i for i in range(5)] # [0,1,2,3,4]
[i for i in line if "SOME TERM" in i]
x=["1","2","3","4","5"]
y=[int(i) for i in x] # [1,2,3,4,5]
vec=[[1,2,3],[4,5,6],[7,8,9]]
[num for elem in vec for num in elem] # [1,2,3,4,5,6,7,8,9]
元组推导(Tuple Comprehension)
元组推导返回的是 生成器对象
result=(i for i in range(5))
print(result) # <generator object <genexpr> at 0x00000160355BC948>
print(tuple(result)) # (0, 1, 2, 3, 4)
字典推导(Dictionary Comprehension)
{i:str(i) for i in range(5)} # {0: '0', 1: '1', 2: '2', 3: '3', 4: '4'}
my_dict={1:"dog",2:"cat",3:"hamster"}
print({key:value for key,value in my_dict.items()}) # {1:"dog",2:"cat",3:"hamster"}
集合推导(Set Comprehension)
my_list1=[1,2,2,3,4,5,5,7,8]
my_set1=set(my_list1) # {1, 2, 3, 4, 5, 7, 8}
my_set2={x for x in my_list1} # # {1, 2, 3, 4, 5, 7, 8}