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

use*_*016 0 python dictionary list type-conversion

我想完成这样的事情:

>>> fruits = {'banana': 'yellow', 'pear': 'green'}
>>> fruits['banana']
'yellow'
>>> fruits
['banana', 'pear']
>>> fruits['pear']
'green'
Run Code Online (Sandbox Code Playgroud)

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

use*_*342 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']
Run Code Online (Sandbox Code Playgroud)

然而,这不会使水果成为"列表",只调整交互式打印表示来模拟一个.如果您需要fruits表现得像列表,则需要提供有关您希望它具有哪些列表特征的更多详细信息.