在Python中编辑字典的键

2024-04-19 23:51:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我想比较Python中两个字典的键。问题是在一个字典中,键的名称是'key1',而在另一个字典中,键的名称是'key1 345',即在制表符后面有一个数字。当然Python不能匹配键,我想知道是否有任何方法可以删除tab字符和数字?你知道吗

谢谢。你知道吗


Tags: 方法名称字典数字字符tab制表符key1
3条回答

假设otherfile中的键名,可以使用split()删除制表符和数字

otherName = 'key1   345'
otherName = otherName.split()[0]
print otherName

首先,仍然有一种方法可以匹配它们

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'}

您可以使用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'}

相关问题 更多 >