如何更新字典中的键?

时间:2016-08-11 19:23:17

标签: python dictionary

我有{} string -> list关系,例如:

'Something.Default.' : ['a=initiator', 'b=00:00:00']
'Something.Session.' : ['b=acceptor', 'c=7039']

我想更改密钥以删除最后. 'Something.Default.'成为'Something.Default'

这显然是错误的,但它说明了我在寻找什么

for key in my_dictionary:
    key = key[:-1]

如何迭代每个键并进行更改?

4 个答案:

答案 0 :(得分:3)

只需创建一个包含修改的新词典。

orig_dict = {'foox': 'bar', 'bazx': 'bat'}
new_dict = {key[:-1]: value for key, value in orig_dict.items()}

答案 1 :(得分:1)

获取每个密钥,删除最后.的新密钥,然后传输数据并删除该字典。

for info in dict:
  if info[-1]=='.':
    dict[info[:-1]] = dict[info]
    del dict[info]

答案 2 :(得分:1)

在迭代其内容时,不应更改可变对象(如列表或字典),因此最好创建一个新字典,在必要时修改相关键。如果一个字符在一个句点中结束('。'),则使用三元组将键截断一个字符,否则使用原始键。

my_dictionary = {key[:-1] if key[-1] == '.' else key: value
                 for key, value in my_dictionary.iteritems()}  # Python 2

新字典将重新分配给旧变量名my_dictionary

答案 3 :(得分:0)

Morgan Thrapp的回答是爆炸性的。但这里有一点修改

orig_dict = {key[:-1]: value for key, value in orig_dict.items()}

您不需要创建新的dict对象。只是一个小小的清理工作。