我有一本字典,但不知道键或值。我想删除单个元素(无论哪个元素)并创建一个仅包含该键和值的新字典,并在此过程中将其从旧字典中删除。
dict(n 项) -> newdict(1 项) 和 dict(n-1 项)
我尝试过的:
newdict=dict.pop()
- 对于列表来说可以完美工作,但是对于字典来说它 1. 需要一个键并且只返回一个值,而不是一个新的字典或一个键、值对newdict={dict.items()[0]}
- TypeError:“dict_items”对象不可订阅newdict={dict.keys()[0],dict.pop(dict.keys()[0])}
- TypeError:“dict_keys”对象不可订阅key=list(dict)[0] newdict={key,dict.pop(key)}
- 有效(终于),但是这不是比将整个字典转换为列表只是为了获取一个键更好的方法吗?
是否有更有效的方法将单个字典元素移动到新字典中?
编辑:将单个元素作为元组也可以。我只需要删除的元素的键和值。
最佳答案
我认为这是 dict.popitem
的一个很好的用例:
old_dict = {1: 2, 3: 4, 5: 6}
new_dict = {7: 8}
def move_item(old, new):
k, v = old.popitem()
new[k] = v
move_item(old_dict, new_dict)
print(old_dict, new_dict)
结果
{1: 2, 3: 4} {7: 8, 5: 6}
关于Python 将单个字典项移动(弹出)到新字典中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59376554/