2017-07-18 83 views
-2

在Python脚本我写,我有一个功能,只能输出它的结果在一个嵌套的元组,像这样:如何构建for循环来简化嵌套的元组

(('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

有一吨这种问题的了DUP。 – enderland

回答

0

您可以从任何可迭代构建一个元组,这样:

tuples = (('foo',), ('bar',), ('baz',), ('spam',), ('eggs',)) 
values = tuple(t[0] for t in tuples) 
print(values) 
# -> ('foo', 'bar', 'baz', 'spam', 'eggs') 

一个tuple在PYT洪是不可变的。 如果您需要一个可变集合,请使用list

要做到这一点,你可以使用一个理解列表:

values = [t[0] for t in tuples] 
print(values) 
# -> ['foo', 'bar', 'baz', 'spam', 'eggs'] 

咨询在线文档,更多地了解数据结构和List Comprehensions

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')