Python 中的元组理解
Vaibhav Vaibhav
2021年12月4日
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'>
Author: Vaibhav Vaibhav