リストがある場合、そのリストから重複のリストを作成するにはどうすればいいですか?私はリストPythonで複製されたリスト
L = [1,2,1,3,4,2,1,4]
を持っている場合 は例えば、私はこれを行うための百の方法についてが存在しなければならない出力が
L1 = [[1,1,1], [2,2], [3], [4,4]]
リストがある場合、そのリストから重複のリストを作成するにはどうすればいいですか?私はリストPythonで複製されたリスト
L = [1,2,1,3,4,2,1,4]
を持っている場合 は例えば、私はこれを行うための百の方法についてが存在しなければならない出力が
L1 = [[1,1,1], [2,2], [3], [4,4]]
になりたいです。ここに1つあります。あなたがもっと欲しいのであれば、これは本当にPythonの質問ですから、あなたの質問にPythonタグを追加してください。
>>> L = [1,2,1,3,4,2,1,4]
>>> from collections import Counter
>>> counts = Counter(L)
>>> counts
Counter({1: 3, 2: 2, 4: 2, 3: 1})
>>> L1 = [ [ _ ]*counts[_] for _ in counts.keys() ]
>>> L1
[[1, 1, 1], [2, 2], [3], [4, 4]]
@ Bill_Bellの回答がバリエーションです。 collections.Counter
の回答に対する代替として
>>> L = [1, 2, 1, 3, 4, 2, 1, 4]
>>> from collections import Counter
>>> counts = Counter(L)
>>> counts
Counter({1: 3, 2: 2, 4: 2, 3: 1})
>>> L2 = [[a]*b for (a,b) in counts.items()]
>>> L2
[[1, 1, 1], [2, 2], [3], [4, 4]]
、あなたがitertools.groupby
使用することができます。
import itertools
L = [1,2,1,3,4,2,1,4]
grouped = [list(group) for key, group in itertools.groupby(sorted(L))]
print(grouped) # -> [[1, 1, 1], [2, 2], [3], [4, 4]]
もっと良い答え! –
グレート答えを、私は、フォーマットして読み少し難しいあなたのリストカンプを見つけたので、多分このようにフォーマットするのに役立ちますOP 'L1 = [[key] *はcounts.keys()のキーのために[key]を数えます。 ' – flybonzai
@flybonzai:わかりません!私はすべての代案だけど。 –