0

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

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

问题:所有键都包含一个 '>' + 字符串。我可以删除这些“>”并更新吗?还是不带“>”更新?

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

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

4

1 回答 1

6

使用 dict 理解很容易:

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

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

对于 Python 2.6 及更早版本,尚无 dict 理解语法,请使用:

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

str.lstrip()>是一种从键的开头删除任何字符的快速简洁的方法。

于 2013-02-14T17:48:15.113 回答