0

辞書のキーを変更できることは知っています。しかし、定義されたパターンを使用してすべてのキーを変更することは可能ですか?この場合、私は以下を含む辞書を持っています:

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

質問:すべてのキーには'>'+文字列が含まれています。これらの「>」を削除して更新できますか?または、「>」なしで更新しますか?

少し背景: 私のスクリプトでは、1つの辞書の値をこの例のキーと比較しようとすると、エラーが発生します。v =!であるため、これは「>」によるものと思います。k='>foo'およびv='foo'の場合はk

科学者の方がいらっしゃるなら、この'>'は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 に答える