【发布时间】:2021-01-20 15:09:27
【问题描述】:
我正在尝试从以下列表中创建字典:
link_i = [1, 1, 3, 3, 3, 4, 4, 5, 5, 6]
link_j = [2, 3, 1, 2, 5, 5, 6, 6, 4, 4]
link_i = [1, 1, 3, 3, 3, 4, 4, 5, 5, 6]
link_j = [2, 3, 1, 2, 5, 5, 6, 6, 4, 4]
nodes = [1, 2, 3, 4, 5, 6]
# Creating a dictionary containing nodes and their incoming links:
out_dict = {}
for i in nodes:
for j in range(0,len(link_i)):
if (link_i[j] == i):
if i not in out_dict:
out_dict[i] = link_j[j]
elif i in out_dict:
out_dict[i].append(link_j[j])
但是,我无法附加密钥,因为它的类型为 int。我得到了错误:
line 21, in <module>
out_dict[i].append(link_j[j])
AttributeError: 'int' object has no attribute 'append'
我正在尝试将输出设为:
{1: [2, 3], 3: [1, 2, 5], 4: [5, 6], 5: [6, 4], 6: [4]}
【问题讨论】:
-
好吧,
out_dict[i].append(link_j[j])绝对不正确。我想应该是out_dict.append(i, link_j[j])。 -
但是 out_dict 是一个字典,然后你会得到
AttributeError: 'dict' object has no attribute 'append' -
对不起,我错了——我不是 Python 专家。根据docs.python.org/3/tutorial/datastructures.html 的第 5.5 节,
out_dict[i] = link_j[j]可以工作。 -
您好,当 i 不是字典的键时,这在第一个 if 循环中有效。当它已经是一个键时,它不会追加,而是用一个新值替换该值。我想要这两个键的值。这是我无法弄清楚的。
标签: python-3.x list dictionary integer