Python 語言有一種獨特的語法,它能夠用最簡單的方式生成一個列表、元組或字典,它們叫推導式。app
常見的推導式:code
列表推導式it
列表推導式能夠快速生成一個列表,其語法格式爲:class
>>> [x * x for x in range(6)] # 結果:[0, 1, 4, 9, 16, 25] # 至關於 l = [] for x in range(6): l.append(x)
要生成的元素 x*x
在前面,後面跟 for
循環。後面也能夠再跟 if
判斷:變量
>>> [x * x for x in range(6) if x % 2 == 0] [0, 2, 4] # 至關於 l = [] for x in range(6): if x % 2 == 0: l.append(x) print(l)
兩層循環(三層不多),生成全排列:循環
>>> [x+y for x in 'abc' for y in '123'] ['a1', 'a2', 'a3', 'b1', 'b2', 'b3', 'c1', 'c2', 'c3'] # 至關於 l = [] for x in 'abc': for y in '123': l.append(x+y) print(l)
循環多個變量:語法
>>> d = {'name': 'rose', 'gender': 'female'} [k + ':' + v for k, v in d.items()] ['name:rose', 'gender:female'] # 至關於 l = [] d = {'name': 'rose', 'gender': 'female'} for k, v in d.items(): l.append(k + ':' + v) print(l)
字典推導式總結
語法格式:dict
{key:value for x in (1, 2, 3)} # 示例一 >>> d = {k:k.upper() for k in ('rose', 'lila', 'tom')} # {'rose': 'ROSE', 'lila': 'LILA', 'tom': 'TOM'} >>> type(d) # dict # 示例二 >>>d = {x: x*2 for x in (1, 2, 3)} # {1: 2, 2: 4, 3: 6}
字典推導式要生成的元素有兩個,分別是 key 和 value,中間以冒號隔開。語言
集合推導式
>>> s = {x for x in '123abc' if x not in '123'} # {'a', 'b', 'c'}
總結