リスト内の文字数を数える関数の書き方は?例えば:
letter_list=['a','b','a','c','b','a']
letter_index={'a':0,'b':1,'c':2}
次の結果を取得したい:
([3,2,1])
リスト内の文字数を数える関数の書き方は?例えば:
letter_list=['a','b','a','c','b','a']
letter_index={'a':0,'b':1,'c':2}
次の結果を取得したい:
([3,2,1])
リスト内の最も一般的な項目を取得したり、単に出現回数を数えたりするには、Counterクラスを使用します。
from collections import Counter
letter_list=('a','b','a','c','b','a')
counter = Counter(letter_list)
print counter.most_common(1)
# Prints 'a' because it's the most common element
そしてこれから、各要素の出現回数も取得できます。
print counter['a'] # Prints 3
print counter.most_common() # Prints [('a', 5), ('r', 2), ('b', 2)]
dict 内包表記を使用してみてください。また、letter_list
あなたの例では、tuple
ではなく、list
です。
>>> letter_list = ['a','b','a','c','b','a']
>>> {x:letter_list.count(x) for x in letter_list}
{'a': 3, 'c': 1, 'b': 2}
リスト内の最上位のアイテムを取得するには、@BoppreHCounter
で詳細に説明されているモジュールを使用するか、次のようにすることができます。
>>> max(set(letter_list), key=letter_list.count)
'b'
1 つの小さなオプション:
letter_list=('a','b','a','c','b','a')
def __get_res(lVals):
unique = set(lVals)
res = map(lVals.count, unique)
return (max(unique, key=lVals.count), map(lVals.count, unique))
print __get_res(letter_list)