我想完成这样的事情:
>>> fruits = {'banana': 'yellow', 'pear': 'green'}
>>> fruits['banana']
'yellow'
>>> fruits
['banana', 'pear']
>>> fruits['pear']
'green'
请注意,我不想拨打fruits.keys()
,只需fruits
。通常它会返回完整的字典,但是有什么技巧可以让它变成这样的列表吗?
答案 0 :(得分: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
表现得像列表,则需要提供有关您希望它具有哪些列表特征的更多详细信息。