0

辞書を作成し、各値に 0 の値を割り当てようとしています

これが私がこれまでに持っているものです:

c.execute("""SELECT category from wordtest order by category""")
catnum = c.fetchall()
catnum = [list(x) for x in catnum]
catnum = sum(catnum, [])
catnums = defaultdict(list)
for key in catnum:
        catnums[key].append(0)

しかし、これに対して得られる出力は次{"key": [0]}のとおりであり、リストに値を入れたくありません。

データベースのカテゴリは単なる単語のリストです。

catnumsキーごとの の値が 0 になるようにするにはどうすればよいですか?

4

2 に答える 2

5

fromkeysdict メソッドを使用できます

>>> dict.fromkeys(range(5), 0)
{0: 0, 1: 0, 2: 0, 3: 0, 4: 0}

したがって、コードは次のようになります。

catnums = dict.fromkeys(catnum, 0)
于 2012-07-27T00:06:00.007 に答える
3

何か不足していますか?次はあなたが望むことをしませんか?:

catnums={}
for key in catnum:
    catnums[key]=0

なぜここで defaultdict が必要なのですか?

デフォルトで 0 の値を持つ defaultdict が必要な場合は、次のようにします。

zerodict=defaultdict(int)

以来int()返品0

于 2012-07-27T00:03:03.697 に答える