我有{}
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]
如何迭代每个键并进行更改?
答案 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对象。只是一个小小的清理工作。