Python 推導式

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'}

總結

  • 推導式能夠快速生成一個列表、字典或集合等
  • 常見的推導式有列表、字典、集合推導式
  • 推導式前面爲要生成的元素,後面接 for 循環,最後還能夠跟 if 判斷條件
  • 列表([])、集合、字典({})
相關文章
相關標籤/搜索