在过去的六个多小时里,我一直在努力解决这个问题,但我一直在尝试迭代和切分字典中的所有键,同时保留值并将所有项转移到新字典中
new_dictionary = {}
current_dictionary = {"XXXX1234":43, "XXXX4547":58, "YYYY4948":93, "YYYY5050":45}
for key,value in current_dictionary.items():
if current_dictionary not in new_dictionary:
new_dictionary.update({key[0:4]:value})
print(new_dictionary)
结果应该是
{"XXXX":43, "XXXX":58, "YYYY":93, "YYYY":45}
相反,我得到了这个
{"XXXX":58, "YYYY":45}
我不想试着把它转换成一个列表并在那里切分,但我想找到一个直接的方法,在过去的一个下午我一直在绞尽脑汁
|=运算符(Python3.9)
我认为|=操作符被称为单管等于操作符,您可以使用它来组合字典。这会将“右”和“右”中的所有条目添加到“左”中,作为平局断路器
输出:
通常像
len(updates)
这样的增量数据比像len(ids)
这样的完整数据要短。以这种方式使用|=
将每次复制所有ids
,而不是复制所有updates
如果被写为ids |= updates
唯一键
正如其他人所指出的,您将需要唯一的密钥。这使用4位尾部作为解决方法:
输出:
字典中的键是唯一的。
如果需要,可以在其中放入多个值,但每个键都必须是唯一的,因此如果再次插入,新值将覆盖该键
您可以使用列表来存储与同一个键关联的多个值。见下文:
你不能在字典里放重复的键。但不是错误信息, Python将在重复键的旧值之上写入新值。 考虑结果 此片段(如问题中所述,但在这里,我手动分割了每个键):
注意
new_dictionary
的打印显示了 原版词典。此外,如果您使用的是IDE(我使用Spyder),则 checker/linter将在new_dictionary
所在的行上发出警告 创造现在,您如何在检测复制的同时编写此代码? 请在最后一节中尝试以下内容:
相关问题 更多 >
编程相关推荐