正在更新OrderedDict

2024-10-01 00:22:37 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的名单

z=[OrderedDict([('name', 'abc'), ('lastname', 'lastname.'), ('address', 'Mumbai'), ('cell', '21******')]), OrderedDict([('name', 'abc'), ('lastname', 'lastname.'), ('address', 'Mumbai'), ('cell', '21******')]), OrderedDict([('name', 'xyz'), ('lastname', 'lastnamexyz.'), ('address', 'Heaven'), ('cell', '2156******')])]

我想换这本字典的钥匙

我正在努力

^{pr2}$

此代码将tmp lst打印为[None, None, None]

但当我试着跟随,得到了正确的结果。在

>>> for i in z:
    newo=OrderedDict()
    newo.update(Name=i.get('name'),Lastname=i.get('lastname'))
    temp_lst.append(newo)   
>>> temp_lst
[OrderedDict([('Lastname', 'lastname.'), ('Name', 'abc')]), OrderedDict([('Lastname', 'lastname.'), ('Name', 'abc')]), OrderedDict([('Lastname', 'lastnamexyz.'), ('Name', 'xyz')])]

这两个代码看起来是一样的,那么为什么我在第一种情况下得到{},在第二种情况下得到正确的输出?在


Tags: 代码namenoneaddresscellordereddictabclst
3条回答

因为更新()不返回任何内容(因此您什么也得不到)。在

这里

temp_lst.append(newo.update(Name=i.get('name'),Lastname=i.get('lastname')))

实际上,您将返回值newo.update添加到列表中,正好是None。在第一个示例中,首先更新dict,然后将dict本身附加到temp_lst。这就不同了

^{}始终返回None,因此在第一个示例中,您附加了None三次,而在第二个示例中,您将dict对象追加三次。在

相关问题 更多 >