推导式

mac2022-06-30  102

推导式

列表推导式生成器推导式字典推导式集合推导式
列表推导式

使用[]生成列表

例一:

lt = [x for x in range(10) if x%2==0] print(lt) # [0, 2, 4, 6, 8]

例二

lt = [x if x%2==0 else -x for x in range(10)] print(lt) # [0, -1, 2, -3, 4, -5, 6, -7, 8, -9]
生成器推导式

将俩表推导式的[]改成()即可得到生成器会生成一个迭代器对象

lt = (x if x%2==0 else -x for x in range(10)) print(type(lt)) # <class 'generator'> for i in lt: print(i,end=' ') # 0 -1 2 -3 4 -5 6 -7 8 -9
字典推导式

字典推导和列表推导的使用方法是类似的,只把中括号该改成大括号。

例一:

dic={chr(x):x for x in range(97,101)} print(dic) # {'a': 97, 'b': 98, 'c': 99, 'd': 100}

例二:

dic={chr(x):x if x%2==0 else x*2 for x in range(97,101)} print(dic) # {'a': 194, 'b': 98, 'c': 198, 'd': 100}

例三:

还可以快速颠倒key与value值

dic = {'a': 97, 'b': 98, 'c': 99, 'd': 100} dic = {v:k for k,v in dic.items()} print(dic) # {97: 'a', 98: 'b', 99: 'c', 100: 'd'}
集合推导式

它们跟列表推导式也是类似的。 唯一的区别在于它使用大括号{}。

例一:

tup = {x for x in range(10) if x%2==0} print(tup) # {0, 2, 4, 6, 8}

例二

tup = {x if x%2==0 else -x for x in range(10)} print(tup) # {0, 2, 4, 6, 8, -9, -7, -5, -3, -1}

转载于:https://www.cnblogs.com/Gredae/p/11348589.html

最新回复(0)