我想比较Python中两个词典的键。问题是在一个字典中,键的名称是'key1'
,而另一个是'key1 345'
,即在制表符之后有一个数字。当然Python无法匹配键,我想知道是否有任何方法可以删除制表符和数字?
感谢。
答案 0 :(得分:2)
您可以使用split
在任意空白处分割密钥,并使用[0]
来获取第一个分段。使用dict理解来创建带有修剪键的新dict。
>>> d = {"key1\t234": "foo", "key2\t678": "bar"}
>>> {k.split()[0]: v for k, v in d.items()}
{'key1': 'foo', 'key2': 'bar'}
或者,如果您想要就地修改字典,可以尝试这样的事情:
>>> for k in d:
... d[k.split()[0]] = d.pop(k)
>>> d
{'key1': 'foo', 'key2': 'bar'}
答案 1 :(得分:0)
首先,还有一种方法可以匹配它们;
In [1]: 'key1' in 'key1 345'
Out[1]: True
虽然你不能编辑一个字符串(Python中的字符串是不可变的),你可以删除旧的键/值对并放入一个新的。
In [2]: d = {'a': 'eggs', 'key1 345': 'spam'}
In [4]: d['key1 345']
Out[4]: 'spam'
In [5]: d['key1'] = d['key1 345']
In [6]: d
Out[6]: {'a': 'eggs', 'key1': 'spam', 'key1 345': 'spam'}
In [7]: del d['key1 345']
In [8]: d
Out[8]: {'a': 'eggs', 'key1': 'spam'}
答案 2 :(得分:0)
让我们说其他文件中的键名,你可以使用split()删除制表符和nuber
otherName = 'key1 345'
otherName = otherName.split()[0]
print otherName