我想更改Python字典中条目的键。
有没有简单的方法可以做到这一点?
只需2个步骤即可轻松完成:
dictionary[new_key] = dictionary[old_key]
del dictionary[old_key]
或第一步:
dictionary[new_key] = dictionary.pop(old_key)
KeyError
如果dictionary[old_key]
未定义,它将引发。请注意,这 将 删除dictionary[old_key]
。
>>> dictionary = { 1: 'one', 2:'two', 3:'three' }
>>> dictionary['ONE'] = dictionary.pop(1)
>>> dictionary
{2: 'two', 3: 'three', 'ONE': 'one'}
>>> dictionary['ONE'] = dictionary.pop(1)
Traceback (most recent call last):
File "<input>", line 1, in <module>
KeyError: 1
问题内容: 有没有一种方法可以重命名字典键,而无需将其值重新分配给新名称并删除旧名称键;而且没有迭代字典键/值? 对于OrderedDict,在保持键的位置的同时执行相同的操作。 问题答案: 对于常规命令,可以使用: 对于OrderedDict,我认为你必须使用一种理解来构建一个全新的。 正如这个问题似乎提出的那样,修改密钥本身是不切实际的,因为dict密钥通常是不可变的对象,例如数字,字符串或元
问题内容: 我需要一些帮助来理解为什么此代码无法按预期工作。 如果要更改词典的键但保留值,则可以使用: 我想修改所有键(并将值保留在适当的位置),但是下面的代码跳过了某些行-(“ col2”)保持不变。是因为字典是无序的,而且我不断更改其中的值吗? 在不创建新字典的情况下如何更改键并保留值? 问题答案: 更改要迭代的对象绝不是一个好主意。通常,尝试时甚至会引发异常: RuntimeError:词典
问题内容: 我的UserDetails类与Entitity类Vehicle具有一对一的映射。创建2个表并分配一个通用外键,该键将vehicle_id列(UserDetails表)映射到主键vehicleId(Vehicle表)。 我的问题是:如何将生成的外键更改为有意义的内容,例如Fk_userdetails_vehicle。 问题答案: 从JPA 2.1开始,您可以使用@ javax.persi
我的UserDetails类与Entitity类Vehicle有一个一对一的映射。创建两个表并分配一个泛型外键,该外键映射vehicle_id列(UserDetails表)至主键vehicleId(Vehicle table)。 我的问题是:我们如何将这个生成的外键改变成有意义的东西,比如Fk_userdetails_vehicle。
问题内容: 我有一本代表书店的字典。键代表书名,值代表当前书的份数。从商店出售书籍时,书籍的份数必须减少。 我已经编写了减少售书数量的代码,但是在更新后打印字典时,我得到的是初始字典,而不是更新的字典。 我想以最简单的方式解决问题。我是否错过了代码中的任何逻辑或任何行? 问题答案: 好吧,您可以仅通过引用键直接从值中减去。我认为这更简单。 在您的情况下:
问题内容: 我有一本字典 但是,我需要字典的顺序不同: 做这个的最好方式是什么? 问题答案: 字典 没有顺序 。因此,没有办法做到这一点。 如果您使用的是python2.7 +,则可以使用-在这种情况下,您可以使用检索项目列表,然后将其反向并从反向列表中创建一个新项: 如果您使用的是旧版python,则可以从http://code.activestate.com/recipes/576693/获得