2 回答
TA贡献1884条经验 获得超4个赞
statement = {}
for temp in cleaned_list:
if len(temp) == 1:
statement[temp[0]] = temp[0]
elif len(temp) > 1:
if temp[0] in statement:
statement[temp[0]].extend(temp[1:])
else:
statement[temp[0]] = temp[1:]
说明(更新):statement.update()替换键中的值,同时您已经用 重新设置字典键对statement[temp[0]] = {}。因此,您似乎不想更新值而是附加列表项。我使用extend()这样您就没有包含列表项的值列表,例如'key': ['foo', 'bar', ['foo2', 'bar2']],而'key': ['foo', 'bar', 'foo2', 'bar2']在使用extend(). 另外,我添加了 if 语句来检查密钥是否已经存在。
TA贡献1895条经验 获得超3个赞
如详述这里,该update()方法更新与来自字典对象或键/值对的一个迭代的对象的元素的字典。您收到一条错误消息,因为您试图在没有指定与 中的值关联的键的情况下更新字典temp_1。
这应该可以解决问题:
statement={}
for temp in cleaned_list:
key=temp[0]
statement.update({key:None})
if len(temp)==1:
value=key
statement.update({key:value})
elif len(temp) > 1:
values=temp[1:]
statement.update({key:values})
添加回答
举报