Pythonリストリスト内のリストの数をカウントする
リストのリストがあります。 like
A = [[x,y],[a,b],[c,f],[e,f],[a,b],[x,y]]
各リストがメインリストに何回出現したかをカウントしたいと思います。カウントを取るために - dictのサブクラス -
私の出力は、あなたがcollections.Counter
を使用することができます
[x,y] = 2
[a,b] = 2
[c,f] = 1
[e,f] = 1
Pythonリストリスト内のリストの数をカウントする
リストのリストがあります。 like
A = [[x,y],[a,b],[c,f],[e,f],[a,b],[x,y]]
各リストがメインリストに何回出現したかをカウントしたいと思います。カウントを取るために - dictのサブクラス -
私の出力は、あなたがcollections.Counter
を使用することができます
[x,y] = 2
[a,b] = 2
[c,f] = 1
[e,f] = 1
ようにする必要があります。まず、カウントそして、辞書のキーとして(すなわちハッシュ可能)使いやすくするためのタプルにサブリストを変換します。
from collections import Counter
count = Counter(map(tuple, A))
ありがとうございます。出来た。 – NAGA
たとえば 'x = y = a = b = c = d = e = f = []'では機能しません。 –
だけcollections
からCounter
を使用する:あなたの出力に応じて、
from collections import Counter
A = [[x,y],[a,b],[c,f],[e,f],[a,b],[x,y]]
new_A = map(tuple, A) #must convert to tuple because list is an unhaable type
final_count = Counter(new_A)
#final output:
for i in set(A):
print i, "=", final_count(tuple(i))
ありがとうございます。出来た。 – NAGA
、あなたはloop
することができますあなたのlist
のset
通じ、元list
からそのcount()
で各項目を印刷:
for x in set(map(tuple, A)):
print '{} = {}'.format(x, A.count(list(x)))
これはリストでは機能しません(タプルの場合は、他の回答を参照してください)。 –
@Błotosmętekありがとう、編集されました。 –
リストをタプルに変換します。それに 'collections.Counter'を使います。 – JBernardo
' x'、 'y'、' a'などに依存します。 –