如果没有指定密钥,有没有办法将dict的密钥作为列表?

时间:2013-08-25 09:42:58

标签: python list dictionary type-conversion

我想完成这样的事情:

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

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

1 个答案:

答案 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表现得像列表,则需要提供有关您希望它具有哪些列表特征的更多详细信息。