0

我想完成这样的事情:

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

请注意,我不想打电话fruits.keys(),只是fruits。通常它会返回完整的字典,但有什么技巧可以让它变成这样的列表吗?

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 回答