2017-07-18 82 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')