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