Python 中的元組理解
Vaibhav Vaibhav
2023年10月10日
Python 程式語言具有簡單易懂的語法。語法非常簡單,可以用 Python 快速編寫一行程式碼。其中一項功能是列表迭代或列表推導。我們可以通過執行這個 [i ** 2 for i in [1, 2, 3, 4, 5, 6, 7]]
來迭代一個列表並快速返回一個包含列表元素方塊的新列表。這同樣適用於字典;它們也可以在一行中迭代。
Python 有各種線性資料結構,如列表、元組等。上面顯示的列表推導式不適用於元組。這意味著我們不能執行 (i ** 2 for i in (1, 2, 3, 4, 5, 6, 7))
。這將引發錯誤。如果這是不可能的,我們如何在 Python 中的一行中執行元組理解?本文將討論相同的內容。
Python 中的元組理解
可以使用以下語法在 Python 中執行元組理解。
x = tuple(i for i in (1, 2, 3, 4, 5, 6, 7))
print(x)
print(type(x))
y = tuple(i ** 2 for i in (1, 2, 3, 4, 5, 6, 7))
print(y)
print(type(y))
輸出:
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>
(1, 4, 9, 16, 25, 36, 49)
<class 'tuple'>
Python 3.5 提出了一種執行元組理解的新方法。它正在使用解包過程。我們可以使用*
來執行解包。相同的參考下面的程式碼。
x = (*(i for i in [1, 2, 3, 4, 5, 6, 7]),) # Notice the comma (,) at the end
print(x)
print(type(x))
輸出:
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>
請注意,此語法等效於編寫 x = tuple([i for i in [1, 2, 3, 4, 5, 6, 7]])
。
x = tuple([i for i in [1, 2, 3, 4, 5, 6, 7]])
print(x)
print(type(x))
輸出:
(1, 2, 3, 4, 5, 6, 7)
<class 'tuple'>
作者: Vaibhav Vaibhav