Counterとitertoolsを使用してみましたが、リストがないため、機能しません。
私のデータは次のようになります:[[1,2,3]、[2,3,4]、[1,2,3]]
リスト[1,2,3]が2回表示されることを知りたいのですが、その方法がわかりません。各リストをタプルに変換し、それをハッシュすることを考えていました。もっと良い方法はありますか?
>>> from collections import Counter
>>> li=[ [1,2,3], [2,3,4], [1,2,3] ]
>>> Counter(str(e) for e in li)
Counter({'[1, 2, 3]': 2, '[2, 3, 4]': 1})
あなたが述べる方法は、各サブリストにネストされた可変可能物がない限りも機能します(例[ [1,2,3], [2,3,4,[11,12]], [1,2,3] ]
:
>>> Counter(tuple(e) for e in li)
Counter({(1, 2, 3): 2, (2, 3, 4): 1})
サブリストリストにネストされた他の使用できないタイプがある場合は、str
orrepr
メソッドを使用します。これは、すべてのサブリストも処理するためです。または、すべてをタプルに再帰的に変換します(より多くの作業)。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加