如何在变量中提取字典单个键值对

发布于 2021-01-29 17:49:49

我在词典中只有一个键/值对。我想将键分配给一个变量,并将其值分配给另一个变量。我已经尝试过以下方式,但是我却遇到了同样的错误。

>>> d = {"a": 1}

>>> d.items()
[('a', 1)]

>>> (k, v) = d.items()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack

>>> (k, v) = list(d.items())
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ValueError: need more than 1 value to unpack

我知道我们可以一键提取键和值,也可以通过for循环和键来提取键和值iteritems(),但是难道没有一种简单的方法可以在一个语句中分配键和值吗?

关注者
0
被浏览
141
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    用元组添加另一个级别(只是逗号):

    (k, v), = d.items()
    

    或列出:

    [(k, v)] = d.items()
    

    或挑选第一个元素:

    k, v = d.items()[0]
    

    前两个具有一个额外的优点,即如果您的字典具有多个键,它们将引发异常,并且都可以在Python 3上运行,而后者则必须拼写为k, v = next(iter(d.items()))可以正常工作。

    演示:

    >>> d = {'foo': 'bar'}
    >>> (k, v), = d.items()
    >>> k, v
    ('foo', 'bar')
    >>> [(k, v)] = d.items()
    >>> k, v
    ('foo', 'bar')
    >>> k, v = d.items()[0]
    >>> k, v
    ('foo', 'bar')
    >>> k, v = next(iter(d.items()))  # Python 2 & 3 compatible
    >>> k, v
    ('foo', 'bar')
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看