我知道可以更改字典中的键。但是可以使用定义的模式更改所有键吗?在这种情况下,我有一个字典,其中包含:
{'>Apple': 'Orange', '>Grape': 'Hopz'}
问题:所有密钥都包含'>' +字符串。我可以删除这些'>'并更新?或者在没有'>'的情况下更新?
小背景: 在我的脚本中,我尝试将一个词典值与此示例键进行比较,从而导致错误。我认为这是由于'>'因为v =! k如果k ='> foo'且v ='foo'
如果你们中有人是科学家,那么'>'是fasta解析器的结果。我可能只是将脚本更改为不写'>'在一行的开头(我还没试过这个......)。
答案 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()
是一种快速简洁的方法,可以从密钥开头删除任何>
个字符。