【发布时间】:2019-07-13 16:48:32
【问题描述】:
我正在尝试将 Python defaultdict(list) 与复数键一起使用。
结果是具有相同键的不同值被插入到不同的列表中,而不是插入到同一个列表中。怎么解决?
comp_arr = np.array([5+6j, 7+8j, 5+6j, 7+8j, 8+3j])
comp_dict= defaultdict(list)
for i in comp_arr.shape:
(comp_dict[comp_arr [i]]).append(i)
【问题讨论】:
-
您的
defaultdict看起来不错。你的for i in comp_arr.shape没有做你认为的事情。试试for i in range(len(comp_arr)): -
小心使用复杂和/或浮点值作为键。浮点数的不精确可能意味着显然相等的值将作为不同的键提交。在这个简单的情况下,这似乎不是问题,但在更实际的情况下要小心。
-
@hpaulj 确实,这是我的问题。非常感谢
标签: python list numpy complex-numbers defaultdict