【发布时间】:2015-09-30 08:36:38
【问题描述】:
我正在寻找一种以通用方式“解包”字典的方法,并找到了解释各种技术的 a relevant question(和答案)(TL;DR:它不太优雅)。
然而,这个问题解决了 dict 的键未知的情况,OP 打算将它们自动添加到本地命名空间。
我的问题可能更简单:我从一个函数中得到一个 dict,并想动态剖析它,知道我需要的键(我可能不是每次都需要它们)。现在我只能做
def myfunc():
return {'a': 1, 'b': 2, 'c': 3}
x = myfunc()
a = x['a']
my_b_so_that_the_name_differs_from_the_key = x['b']
# I do not need c this time
当我在寻找等价物时
def myotherfunc():
return 1, 2
a, b = myotherfunc()
但是对于一个 dict (这是我的函数返回的)。我不想使用后一种解决方案有几个原因,其中一个原因是哪个变量对应于哪个返回的元素并不明显(第一种解决方案至少具有可读性的优点)。
这样的操作可以吗?
【问题讨论】:
-
a, b = foo().get('a'), foo().get('b')我想可以工作。以通常的方式解包的问题是字典的无序性质。 -
谢谢,但我不想调用该函数两次(或更多),否则我会选择我的问题中提到的(第一个)解决方案。
标签: python dictionary unpack