Python 在不知道其关键字名称的情况下解包字典

Python 在不知道其关键字名称的情况下解包字典,python,dictionary,unpack,Python,Dictionary,Unpack,如果我有一些字典,比如: d = {'keyname': ['foo', 'bar']} 我不知道密钥名,我如何将这个dict解包成两个变量 这不起作用: k,v = d 我可以重复这句话,比如: for k, v in d.items(): # k and v are now available 但我认为这还不够“蟒蛇式”的方式 如何在不使用for循环的情况下执行此操作 “d”始终只能有一个键:val对。在Python中2.x 如果您的词典的长度始终为1,则这可能是一种可行的解决

如果我有一些字典,比如:

d = {'keyname': ['foo', 'bar']}
我不知道密钥名,我如何将这个dict解包成两个变量

这不起作用:

k,v = d
我可以重复这句话,比如:

for k, v in d.items():
    # k and v are now available
但我认为这还不够“蟒蛇式”的方式

如何在不使用for循环的情况下执行此操作


“d”
始终只能有一个
键:val
对。

在Python中2.x 如果您的
词典
的长度始终为1,则这可能是一种可行的解决方案:

>>> d = {'keyname': ['foo', 'bar']}
>>> k, v = d.keys()[0], d.values()[0]
>>> k
'keyname'
>>> v
['foo', 'bar']
对于Python2.x3.x 使用
.items()

对于python3.x

>>> d = {'keyname': ['foo', 'bar']}
>>> k, v = tuple(d.keys())[0], tuple(d.values())[0]
>>> k
'keyname'
>>> v
['foo', 'bar']

在Python中2.x 如果您的
词典
的长度始终为1,则这可能是一种可行的解决方案:

>>> d = {'keyname': ['foo', 'bar']}
>>> k, v = d.keys()[0], d.values()[0]
>>> k
'keyname'
>>> v
['foo', 'bar']
对于Python2.x3.x 使用
.items()

对于python3.x

>>> d = {'keyname': ['foo', 'bar']}
>>> k, v = tuple(d.keys())[0], tuple(d.values())[0]
>>> k
'keyname'
>>> v
['foo', 'bar']

您可以使用iterable解包:

>>> d = {'keyname': ['foo', 'bar']}
>>> [(k, v)] = d.items()
>>> k
'keyname'
>>> v
['foo', 'bar']
>>>
这在Python2.x和Python3.x中都适用

但是请注意,如果您使用的是Python2.x,使用
d.iteritems()
而不是
d.items()
,效率会稍微高一些:


这是因为
iteritems
返回迭代器,而
items
生成不必要的列表。

您可以使用iterable解包:

>>> d = {'keyname': ['foo', 'bar']}
>>> [(k, v)] = d.items()
>>> k
'keyname'
>>> v
['foo', 'bar']
>>>
这在Python2.x和Python3.x中都适用

但是请注意,如果您使用的是Python2.x,使用
d.iteritems()
而不是
d.items()
,效率会稍微高一些:


这是因为
iteritems
返回迭代器,而
items
生成不必要的列表。

d={'keyname':['foo','bar']}

对于k in d.keys(): 键=k

val = d[k]

print key, val

d={'keyname':['foo','bar']}

对于k in d.keys(): 键=k

val = d[k]

print key, val

这不适用于Python 3!我应该提到,它必须在Python下工作3@user2624744感谢您提醒我们Python3中的
.keys()
.values()
更新。这不适用于Python3!我应该提到,它必须在Python下工作3@user2624744感谢您提醒我们python 3中的
.keys()
.values()
更新。必须使用python 3!必须使用Python 3!