有序更改字典键(Python)

时间:2013-02-14 17:45:46

标签: python dictionary

我知道可以更改字典中的键。但是可以使用定义的模式更改所有键吗?在这种情况下,我有一个字典,其中包含:

{'>Apple': 'Orange', '>Grape': 'Hopz'}

问题:所有密钥都包含'>' +字符串。我可以删除这些'>'并更新?或者在没有'>'的情况下更新?

小背景: 在我的脚本中,我尝试将一个词典值与此示例键进行比较,从而导致错误。我认为这是由于'>'因为v =! k如果k ='> foo'且v ='foo'

如果你们中有人是科学家,那么'>'是fasta解析器的结果。我可能只是将脚本更改为不写'>'在一行的开头(我还没试过这个......)。

1 个答案:

答案 0 :(得分:6)

理解词汇很容易理解:

updateddict = {k.lstrip('>'): v for k, v in yourdict.iteritems()}

for Python 2.7。对于Python 3,请改用yourdict.items()

对于Python 2.6及更早版本,如果还没有dict理解语法,请使用:

updateddict = dict((k.lstrip('>'), v) for k, v in yourdict.iteritems())

str.lstrip()是一种快速简洁的方法,可以从密钥开头删除任何>个字符。