2017-07-27 8 views
0

文字列ではなく文字列でカウンタを更新するにはどうすればよいですか? 例えば、二つの文字列で、このカウンタを初期化した後:Pythonのカウンタコレクションを文字列ではなく文字で置換

from collections import Counter 
c = Counter(['black','blue']) 

な「赤」としてそれを別の文字列を「追加」。私はupdate()メソッドを使用する場合には、文字は「r」、「E」、「D」追加されます:あなたは辞書でそれを更新することができ

c.update('red') 
c 
>>Counter({'black': 1, 'blue': 1, 'd': 1, 'e': 1, 'r': 1}) 

答えて

1

を、以来、別の文字列を追加することでキーを更新すると同じです+1カウント:

from collections import Counter 
c = Counter(['black','blue']) 

c.update({"red": 1}) 

c 
# Counter({'black': 1, 'blue': 1, 'red': 1}) 

キーがすでに存在する場合、カウントは1ずつ増加します:

c.update({"red": 1}) 

c 
# Counter({'black': 1, 'blue': 1, 'red': 2}) 
+1

うん、私は簡単に何かが欠けていた知っていました。ありがとうございました! – aless80

3
c.update(['red']) 
>>> c 
Counter({'black': 1, 'blue': 1, 'red': 1}) 

ソースには、iterable、ディクショナリ、または別のCounterインスタンスを指定できます。

文字列は繰り返し可能ですが、結果は期待どおりではありません。まず、あなたが使用できるなど

2

リスト、タプル、それを変換します

c["red"]+=1 
# or 
c.update({"red": 1}) 
# or 
c.update(["red"]) 

すべてのこれらのオプションは関係なく、キーのが存在しているかどうか動作します。そして、存在する場合、彼らはこれを試してみてください1

0

によって数を増加します:

c.update({'foo': 1}) 
+0

これは@Psidomの答えではありませんか? – Alexander

+0

私は答えたときにそれを見なかった。 –

+1

あなたの答えは、以前に提供された回答の実質的に完全なコピーであり、新しい内容を提供していないことが分かったので、あなたはあなたの答えで何をすべきだと思いますか? – Alexander

関連する問題