2009-08-22 3 views

答えて

4

ここでは簡単なソリューションです:

data = [ 
('A', 
    ['D', 
    'E', 
    'F', 
    'G']), 
('B', 
    ['H']), 
('C', 
    ['I']) 
] 

result = [] 

for x in data: 
    for y in x[1]: 
     result.append((x[0], y)) 
+0

crescentfreshによって与えられたリストの理解は短くなりますが、これは正確ではなく、一部の人にとっては、特に初心者の方にとっては簡単です。 –

10

試してみてください。

>>> a = [('A', ['D', 'E', 'F', 'G']), ('B', ['H']), ('C', ['I'])] 
>>> [(k,j) for k, more in a for j in more] 
[('A', 'D'), ('A', 'E'), ('A', 'F'), ('A', 'G'), ('B', 'H'), ('C', 'I')] 

これは当然の入れ子の一つだけのレベルを扱うが。

+0

私のために完全に働きます。私はあまりにも長い間、容易になるはずのものにこだわりました。今私はまた、発電機がすべてについて、理解していることを理解しています! –

+0

@kon:私は発電機を使用しませんでした。それはあなたがそこに見るリストの理解です:http://www.network-theory.co.uk/docs/pytut/ListComprehensions.html –

1

(横のコメント)なぜあなたはそれのようにインデントしましたか?次の方が読みやすくなりますか?

関連する問題