Python 中的一行中的 for 迴圈
本教程將介紹在 Python 中實現一行 for
迴圈的各種方法。在 Python 中,一行 for
迴圈有多種形式;一個簡單的 for
迴圈可以遍歷可迭代物件或序列。另一個可以是簡單的列表推導,也可以是帶有 if ... else
語句的列表推導。
Python 中的簡單一行 for
迴圈
簡單的單行 for
迴圈就是 for
迴圈,它迴圈遍歷一個序列或一個可迭代的物件。因此,我們可以將可迭代物件與 for
迴圈或 range()
函式一起使用。可迭代物件可以是列表,陣列,集合或字典。
下面的示例程式碼演示瞭如何實現一行 for
迴圈來迭代 Python 的可迭代物件。
myset = {'a','b','c','d','e','f','g'}
mydict = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7}
for x in myset:
print(x)
for key, val in mydict.items():
print(key,val)
range(start, stop, step)
函式返回一個序列,該序列從 start
值開始,以 stop
值結束,步長等於 step
。
下面的示例程式碼演示瞭如何使用 range()
函式在 Python 中實現一行 for
迴圈。
for x in range(1,99):
#do something
在 Python 中使用單行 for
迴圈進行列表推導
列表推導是一種以多種程式語言(包括 Python)從現有列表建立新列表的語法方法。我們可以對列表的每個元素應用任何操作,並使用簡單的列表推導來建立新列表。
下面的示例程式碼演示瞭如何在 Python 中使用單行 for
迴圈來實現列表推導。下面的程式碼通過採用現有列表中每個元素的平方來建立一個新列表。
mylist = [6,2,8,3,1]
newlist = [x**2 for x in mylist]
print(newlist)
輸出:
[36, 4, 64, 9, 1]
在 Python 中使用 if ... else
語句使用單行 for
迴圈進行列表推導
帶有 if ... else
語句的列表推導用於對現有列表的某些特定元素應用操作以建立新列表,或從現有列表中過濾元素以建立新列表。
下面的示例程式碼演示瞭如何使用 for
迴圈在 Python 中使用 if
語句和 if...else
語句來實現列表推導。
下面的示例程式碼如果是奇數,則將元素新增到新列表中,如果是偶數,則將其丟棄。
mylist = [1,4,5,8,9,11,13,12]
newlist = [x for x in mylist if x%2 == 1]
print(newlist)
輸出:
[1, 5, 9, 11, 13]
下面的示例程式碼使用一行 if ... else
列表推導,將奇數元素新增為 1
,將奇數元素轉換為偶數,並將偶數元素新增到列表,而無需對其進行任何操作,結果,我們得到一個新的偶數列表。
mylist = [1,4,5,8,9,11,13,12]
newlist = [x+1 if x%2 == 1 else x for x in mylist]
print(newlist)
輸出:
[2, 4, 6, 8, 10, 12, 14, 12]