在我编写的Python脚本中,我有一个只能在嵌套元组中输出结果的函数,如下所示:
(('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
我需要构造一个FOR循环,以便我可以使用元组(作为不可变性的元组,而不是单个字符串),如下所示:
('foo', 'bar', 'baz', 'spam', 'eggs')
我不熟悉编码(更不用说Python了),而且我从来没有对循环有过特殊的倾向,但我很确定我需要使用枚举()从每个嵌套元组中提取第0个条目,并将它们放在一个新的(?)元组中。这是我的代码...
for count,item in enumerate(tuple):
s = item[0]
item = tuple[count]
任何帮助或建议都将不胜感激!
答案 0 :(得分:0)
在Python中,你可以写:
a, b = ('some', 'tuple')
从元组中获取单个值。您可以在for
循环中执行相同的操作。在你的情况下,每个元组只有一个值,所以你只需要左侧的一个变量。 (注意逗号!)
stuff = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
for item, in stuff:
print(item)
# Output:
# foo
# bar
# baz
# spam
# eggs
修改强>
根据评论,将项目放入元组中:
values = tuple(item for item, in stuff)
print(values)
# Output:
# ('foo', 'bar', 'baz', 'spam', 'eggs')
答案 1 :(得分:0)
你可以从任何迭代构造一个元组,如下所示:
tuples = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',))
values = tuple(t[0] for t in tuples)
print(values)
# -> ('foo', 'bar', 'baz', 'spam', 'eggs')
Python中的tuple
是不可变的。
如果您需要可变集合,请使用list
。
为此,您可以使用理解列表:
values = [t[0] for t in tuples]
print(values)
# -> ['foo', 'bar', 'baz', 'spam', 'eggs']
请参阅在线文档,了解有关数据结构和List Comprehensions
的更多信息