1

2 種類のイテラブルがあり、1 つはリストで、もう 1 つはジェネレーター オブジェクトであると仮定します (または、両方をリストとして表示する方が簡単な場合)。

リストには次の要素があります。list = [1,2,3,4,5,6,7,8,9]一方、ジェネレーターは各反復でタプルのリストを生成します。生成されたリストは次のようになりますylist = [(3,"three"),(4,"four"),(5,"five")]

次のようなリストを取得できるようにしたい: finallist = [1,2,(3,"three"),(4,"four"),(5,"five"),6,7,8,9].

どうすればこれを達成できますか?

4

1 に答える 1

4

そのジェネレーターから返された項目を dict に変換してから、リスト内包表記を使用します。

>>> lis = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> ylist = [(3, "three"),(4, "four"),(5, "five")]
>>> dic = dict(ylist)
>>> [x if x not in dic else (x, dic[x])  for x in lis]
[1, 2, (3, 'three'), (4, 'four'), (5, 'five'), 6, 7, 8, 9]
于 2013-07-08T00:28:24.800 に答える