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

为什么在这里需要一个默认字典?

请注意,如果您想要一个默认值为 0 的 defaultdict,您可以执行以下操作:

zerodict=defaultdict(int)

因为int()回报0

于 2012-07-27T00:03:03.697 回答