我想把一个值赋给字典(dicio),键=列表中某个数字的计数,值=具有该计数的数字
我只是想知道为什么会这样:
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])
您应该在
list_A
中的值的set
上迭代,因为这样您就不会反复计数了(这样效率更高)然后,您可以将一个列表添加到已经创建的(或创建然后添加)列表中,该列表的键为count,元素重复出现在
list_A
中的次数也就是说:
示例:
请注意,这不能用看起来更整洁的方式来完成:
dicio.setdefault(count, []).append([elem] * count)
,因为这将附加一个列表,而不是单个元素,因此我们将重新分配将前一个列表与新元素连接起来的结果相关问题 更多 >
编程相关推荐