0

リスト内の文字数を数える関数の書き方は?例えば:

    letter_list=['a','b','a','c','b','a']


    letter_index={'a':0,'b':1,'c':2}

次の結果を取得したい:

    ([3,2,1])
4

3 に答える 3

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)]
于 2012-11-22T02:10:19.270 に答える
0

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'
于 2012-11-22T02:09:23.840 に答える
0

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)
于 2012-11-22T02:20:48.373 に答える