Python赋值破坏

Python赋值破坏,python,Python,如何在Python中执行ES6类型的对象分解 dictionary = {} dictionary['a'] = 'hello' dictionary['b'] = 'goodbye' print dictionary a, b = [dictionary] print a, b 我怎样才能让它打印出来呢 您可以通过exec()模拟对象分解 为方便起见,您可以编写一个函数来隐藏所有技术细节: def destructure(d): [exec("global %s; %s=%s

如何在Python中执行ES6类型的对象分解

dictionary = {}

dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'

print dictionary

a, b = [dictionary]

print a, b

我怎样才能让它打印出来呢

您可以通过
exec()
模拟对象分解

为方便起见,您可以编写一个函数来隐藏所有技术细节:

def destructure(d):
    [exec("global %s; %s=%s" % (var,var,repr(val))) 
              for var,val in d.items() if var.isidentifier()]

您可以通过
exec()
模拟对象分解

为方便起见,您可以编写一个函数来隐藏所有技术细节:

def destructure(d):
    [exec("global %s; %s=%s" % (var,var,repr(val))) 
              for var,val in d.items() if var.isidentifier()]

您应该通过键提取
字典的设置值:

dictionary = {}

dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'

print dictionary

a, b = dictionary['a'], dictionary['b']

print a, b

字典不保持键和值的顺序。这意味着,如果您需要字典中键或值的有序结果,您应该记住这一点。

您应该通过键提取
字典的设置值:

dictionary = {}

dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'

print dictionary

a, b = dictionary['a'], dictionary['b']

print a, b

字典不保持键和值的顺序。这意味着,如果您需要字典中键或值的有序结果,您应该记住这一点。

您实际上可以这样做:

a, b = dictionary.values()
或者,如果您担心字典未订购,您可以执行以下操作:

from collections import OrderedDict

print "Hello World!\n"
dictionary = OrderedDict()  # <-------------

dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'

print dictionary

a, b = dictionary.values()

print a, b
从集合导入订单数据
打印“Hello World!\n”

dictionary=OrderedDict()#您实际上可以这样做:

a, b = dictionary.values()
或者,如果您担心字典未订购,您可以执行以下操作:

from collections import OrderedDict

print "Hello World!\n"
dictionary = OrderedDict()  # <-------------

dictionary['a'] = 'hello'
dictionary['b'] = 'goodbye'

print dictionary

a, b = dictionary.values()

print a, b
从集合导入订单数据
打印“Hello World!\n”

dictionary=OrderedDict()#从技术上讲,您不能,因为编译器不关心LHS上的名称。太糟糕了,这是一个非常好的ES6功能。如果你回答我会接受的,谢谢。@cricket\u 007 OP希望变量
a
绑定到字典中键
a
的值,等等。从技术上讲你不能,因为编译器不关心LHS上的名称。太糟糕了,这是一个非常好的ES6功能。如果你回答我会接受的,谢谢。@cricket_007 OP希望变量
a
绑定到字典中键
a
的值,等等。重点是自动匹配标识符和字典键。@DYZ但是如果不可能,为什么不给出一个替代方案呢?有些时候,OP所要求的是根本不可能的。发布一个答案,给出一个可能的替代方案,IMO和提供解决方案的答案一样有效。我认为这是可能的(见下面我的答案)。@DYZ好的,你有我:)但OP真的不应该使用你的解决方案。事实上,你自己也是这么说的。为什么要选择一种稍微不同的方法,而不是更惯用的方法呢?@leaf事实上,我不同意。我相信我的解决方案几乎是安全的。重点是自动匹配标识符和字典键。@DYZ但如果这不可能,为什么不给出一个替代方案呢?有些时候,OP所要求的是根本不可能的。发布一个答案,给出一个可能的替代方案,IMO和提供解决方案的答案一样有效。我认为这是可能的(见下面我的答案)。@DYZ好的,你有我:)但OP真的不应该使用你的解决方案。事实上,你自己也是这么说的。为什么要选择一种稍微不同的方法,而不是更惯用的方法呢?@leaf事实上,我不同意。我相信我的解决方案几乎是安全的。