0

私はこのようなことを達成したい:

>>> fruits = {'banana': 'yellow', 'pear': 'green'}
>>> fruits['banana']
'yellow'
>>> fruits
['banana', 'pear']
>>> fruits['pear']
'green'

を呼び出したくないことに注意してfruits.keys()くださいfruits。通常は完全なdictを返しますが、そのようなリストにするために使用できるトリックはありますか?

4

1 に答える 1

6

印刷表現を変更したい場合は、継承しdictてオーバーライドします__repr__

class FruitDict(dict):
    def __repr__(self):
        return repr(self.keys())

>>> fruits = FruitDict(banana='yellow', pear='green')
>>> fruits['banana']
'yellow'
>>> fruits
['pear', 'banana']

ただし、これは果物を「リストにする」のではなく、インタラクティブな印刷表現を微調整してエミュレートするだけです。リストのように振る舞う必要がある場合fruitsは、どのリストの特性を持たせたいかについて詳細を指定する必要があります。

于 2013-08-25T09:45:02.543 に答える