📅  最后修改于: 2023-12-03 15:22:31.821000             🧑  作者: Mango
元组是不可变的序列,而列表是可变的序列。在Python中,我们可以使用列表推导式来生成新的列表,但如果我们想要得到一个新的元组,该怎么办呢?可以使用元组推导式。
元组推导式看起来类似于列表推导式,但是使用的是圆括号而不是方括号。以下是一个简单的例子:
numbers = (1, 2, 3, 4, 5)
new_numbers = (x * 2 for x in numbers if x % 2 == 0)
print(new_numbers) # <generator object <genexpr> at 0x7f0fbabc74a0>
print(tuple(new_numbers)) # (4, 8)
在这个例子中,我们创建了一个元组numbers
,其中包含数字1到5。然后,我们使用if
语句来过滤出其中的偶数,再将偶数乘以2。最后,我们使用tuple()
函数将生成器对象转换回元组。
下面是另一个带有条件过滤的例子:
words = ("hello", "world", "python", "is", "awesome")
new_words = (word.upper() for word in words if "o" in word)
print(new_words) # <generator object <genexpr> at 0x7f0fbabc74a0>
print(tuple(new_words)) # ('HELLO', 'WORLD', 'PYTHON')
在这个例子中,我们创建了一个具有不同单词的元组words
,然后使用if
语句过滤出包含字母o
的单词并将它们转换为大写字母。最后,我们将生成器对象转换回元组。
总结:
if
语句来过滤要包含在新元组中的元素。