【问题标题】:Is there a way to get a dict's keys as a list if no key is specified? [closed]如果没有指定键,有没有办法将字典的键作为列表获取? [关闭]
【发布时间】:2013-08-25 09:42:57
【问题描述】:

我想完成这样的事情:

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

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

【问题讨论】:

  • 你到底是什么意思? fruits 是一个字典,如果你使用交互式解释器并且只输入 fruits 你会得到整个字典,但是如果你想检查某个键是否存在,你可以做 if 'banana' in fruits: 它会像一个列表一样......如果你想显示键列表,你将需要使用keys()

标签: python list dictionary type-conversion


【解决方案1】:

如果您希望更改打印的表示,请从 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 表现得像一个列表,您需要详细说明您希望它具有哪些列表特征。

【讨论】:

    猜你喜欢
    • 2017-07-01
    • 2021-06-03
    • 2020-08-31
    • 2023-01-24
    • 1970-01-01
    • 2020-03-24
    • 2020-02-22
    • 2021-07-27
    • 1970-01-01
    相关资源
    最近更新 更多