0

わかりました。たとえば、キーと値のペアがたくさんある辞書があります。

   worddict = {'example1': 1, 'example2': 0, 'example3': 7}

特定のキーを調べてその値を取得し、それを別のキー(値ペアの値)に追加したいと思います。例えば:

擬似コード:

seconddict = {'firstitem': 1, 'seconditem': 1, 'thirditem':9}

for x in worddict:
    if x.key = example1:
        seconddict{'firstitem'.value} + example1.value

私は正しい一般的な考えを持っていると思いますが、構文は持っていません。

ただし、基本的に、firstitemの値はexample1の値とまったく同じ数だけ増加します。

基本的に、私は単語のリストを持っています、そしてこれらの単語は特定のカテゴリーにあります。これらのカテゴリのいずれかの単語は、そのカテゴリの値を1つ上げます。

編集:

期待される出力は、最初のディクショナリのキーに値がある場合、その値が2番目のディクショナリの特定のキーの値に追加されることです。

したがって、この場合、firstitemの値は「2」になります。これは、最初は1であり、example1は「firstname」カテゴリに含まれているためです。

4

4 に答える 4

1

編集: OPのコメントは、単語が複数のカテゴリに含まれる可能性があることを明確にしています。コードが調整されました。


カテゴリごとに単語の価値を積み上げていきたいと思います。それを行う1つの(簡単な)方法は次のとおりです。

def accumulate_by_category(word_values, cat_sums, cats):
    """ modify the category sums by adding the values of the given words """
    for word, value in word_values.items():
        for cat in cats[word]:
            cat_sums[cat] += value

次のように使用できます。

worddict = {'example1': 1, 'example2': 0, 'example3': 7}
seconddict = {'firstitem': 1, 'seconditem': 1, 'thirditem':9}

categories = {'example1': ['firstitem', 'thirditem'],
              'example2': ['seconditem', 'thirditem'],
              'example3': ['thirditem']}

accumulate_by_category(worddict, seconddict, categories)
print(seconddict) # {'seconditem': 1, 'firstitem': 2, 'thirditem': 17}
于 2012-07-08T20:10:26.473 に答える
0

これはあなたが考えていたものですか?

for word,category in worddict.items():
    categoryCounts[category] += 1
于 2012-07-08T18:50:19.783 に答える
0

私はあなたがこのようなものを探していると推測しています-そうでない場合は、あなたの期待される出力が何であるかを投稿してください

my_list = [False, False, False, True, True, True]

worddict = {'example1': 1, 'example2': 0, 'example3': 7}
seconddict = {'firstitem': 1, 'seconditem': 1, 'thirditem':9}

keys_to_add = ['example1', 'example3']

for k in keys_to_add:
    seconddict['firstitem'] += worddict[k]

print seconddict
于 2012-07-08T18:51:52.613 に答える
-1
seconddict = {}
for k,v in worddict.items():
 seconddict[v] = seconddict.get(v,0) + 1
于 2012-07-08T18:53:01.240 に答える