【发布时间】:2018-12-07 17:03:57
【问题描述】:
我想为字典 (dicio) 赋予一个值,其中 KEYS = 列表中数字的计数,VALUES = 具有该计数的数字。
只是想知道为什么会这样:
for elem in list_A:
dicio[list_A.count(elem)] = dicio.setdefault(list_A.count(elem),[]) + [elem]
这不会(使用 .append 或 .extend):
for elem in list_A:
dicio[list_A.count(elem)] = dicio.setdefault(list_A.count(elem),[]).extend([elem])
【问题讨论】:
-
extend不返回修改后的列表;它返回None。 -
你在这两种情况下都错误地使用了
setdefault,首先它恰好起作用,因为连接运算符返回值 -
对于第二个例子来说,
for elem in list_A: dicio.setdefault(list_A.count(elem),[]).extend([elem])是正确的。
标签: python python-3.x dictionary key