Python——for表達式

1、for表達式

一、for表達式語法格式及用法

for表達式利用可迭代對象建立新的列表,for表達式也稱爲列表推導式,具體語法格式以下:python

[表達式 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次執行的值收集起來做爲新的列表元素。blog

二、for表達式添加if條件

for表達式還能夠在可迭代對象後面加if條件,for表達式只會迭代符合條件的元素,generator

例: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)進行了迭代。class

三、生成器推導式

for表達式把方括號[]改成圓括號(),將會生成一個生成器,生成器一樣能夠使用for循環迭代,object

循環

a = ( i + i for i in range(5) )
print (a)
# 將再也不生成列表,而是一個生成器。 打印 <generator object <genexpr> at 0x0000000002691B10>

# 使用for循環迭代生成器
for h in a:
    print (h,end = '\t')
# 打印 0       2       4       6       8       

四、嵌套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 相等時,纔會進行迭代。

相關文章
相關標籤/搜索