itmeslist = {}
Itmesdict = {"data":[]}
fruits = ['Mango.ok', 'Grapes.ok', 'Bananna', 'Kiwi.ok', 'Oranges']
for x in fruits:
if x.endswith(".ok"):
itmeslist["Name"] = x
itmeslist["Status"] = "OK"
Itmesdict["data"].append(itmeslist)
print(Itmesdict)
我试图将项(键、值对)添加到字典中,但它仅添加相同的项(最后一项)。 代码如上所示:
以下是输出:
{'data': [{'Name': 'Kiwi.ok', 'Status': 'OK'}, {'Name': 'Kiwi.ok', 'Status': 'OK'}, {'Name': 'Kiwi.ok', 'Status': 'OK'}]}
我想要的是:
{'data': [{'Name': 'Mango.ok', 'Status': 'OK'}, {'Name': 'Grapes.ok', 'Status': 'OK'}, {'Name': 'Kiwi.ok', 'Status': 'OK'}]}
代码中有什么问题
@sam-sam干得好,实际上一切都很好,继续努力吧!:)
首先,为什么要将“ok”状态存储在字符串中
也许可以使用口述?:)
some_dict={“item_name”:{“parameter”:“value”,…},…}
那么一些dict[“item\u name”][“ok”]=True会更容易,你不觉得吗
您是否使用过ipdb/任何其他调试器(即从GUI IDE)来处理您的代码?是时候学习了
另一件事是首先准备数据作为列表,然后添加它:)
itmeslist = {}
是项目录非列表试着在你的路上征服更多,然后带着更多的问题回来评论这个答案。谢谢:))
编辑: 您不应该复制itemslistdict每个FOR-LOOP,因为它是强反模式,这是在其他答案中建议的:
最好的即时答案是@román-cárdenas;)但这并不是在教你:)
你应该这样做:
基本上,列表保留对对象的引用,而不是对象本身,所以每次都更新相同的
dict
。这就是为什么它都在你的输出中。而是附加一份副本:相关问题 更多 >
编程相关推荐