天天看點

python表達式_Python——for表達式

一、for表達式

1、for表達式文法格式及用法

for表達式利用可疊代對象建立新的清單,for表達式也稱為清單推導式,具體文法格式如下:

[表達式 for 循環計數器 in 可疊代對象]

例:

a = [ i + i for i in range(0,5) ]

print (a)

# 傳回的是一個清單,列印 [0, 2, 4, 6, 8]

上面的例子中,range相當于包含5個元素(0,1,2,3,4),對表達式 i + i 執行5次,并且把5次執行的值收集起來作為新的清單元素。

2、for表達式添加if條件

for表達式還可以在可疊代對象後面加if條件,for表達式隻會疊代符合條件的元素,

例:

a = [ i + i for i in range(0,5) if i % 2 == 0]

print (a)

# 列印 [0, 4, 8]

上面的例子中,if i % 2 == 0篩選了range中的奇數,隻對符合條件的3個元素(0,2,4)進行了疊代。

3、生成器推導式

for表達式把方括号[]改為圓括号(),将會生成一個生成器,生成器同樣可以使用for循環疊代,

a = ( i + i for i in range(5) )

print (a)

# 将不再生成清單,而是一個生成器。 列印 at 0x0000000002691B10>

# 使用for循環疊代生成器

for h in a:

print (h,end = '\t')

# 列印 0 2 4 6 8

4、嵌套for表達式

for表達是也可以使用多個循環,

例:

a = [[i,j] for i in range(5) for j in range(6,8)]

print (a)

# 列印 [[0, 6], [0, 7], [1, 6], [1, 7], [2, 6], [2, 7], [3, 6], [3, 7], [4, 6], [4, 7]]

上面例子中,相當于如下的嵌套循環:

for i in range(5):

for j in range(6,8):

print ([i,j])

在嵌套的for表達式中,也可以添加if條件,

例:

a = [[i,j] for i in range(5) for j in range(5) if j == i]

print (a)

#列印 [[0, 0], [1, 1], [2, 2], [3, 3], [4, 4]]

上面的例子中,隻有當 i 和 j 相等時,才會進行疊代。

繼續閱讀