3

問題は、順序を維持しながら2つのリストをマージし、マージされたリストに同じ数のアイテムを含めることです。これは、10個(または任意の数)を超えるアイテムを保持することはできませんが、できるだけ多くのアイテムを保持できます。

これは最も簡単な例です。

l1 = list('1'*10)
l2 = list('2'*10)
lt = l1[:5] + l2[:5]

ただし、一方のリストに5つのアイテムがない場合、新しいリストはもう一方のリストのアイテムでいっぱいになります。

l1 = list('1'*2)
l2 = list('2'*10)
lt = ['1','1','2','2','2','2','2','2','2','2']

l1 = list('1'*10)
l2 = list('2'*2)
lt = ['1','1','1','1','1','1','1','1','2','2']

関数は、任意の数の項目を含むリストを取得する必要があります。これは単純なはずですが、そうではありません。

4

1 に答える 1

5

リストから5つのアイテム、またはリストを希望の長さにするのに十分なアイテムのいずれか大きい方を選択します。

lt = l1[:max(5, 10 - len(l2))] + l2[:max(5, 10 - len(l1))]
于 2012-04-21T15:36:54.590 に答える