在Javascript中是否有python 2.7x中的Object spread语法?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Javascript中是否有python 2.7x中的Object spread语法?相关的知识,希望对你有一定的参考价值。

如何将objects / dict(?)属性传播到新的object / dict中?

简单的Javascript:

const obj = {x: '2', y: '1'}
const thing = {...obj, x: '1'}
// thing = {x: '1', y: 1}

蟒蛇:

regions = []
for doc in locations_addresses['documents']:
   regions.append(
        {
            **doc, # this will not work
            'lat': '1234',
            'lng': '1234',

        }
    )
return json.dumps({'regions': regions, 'offices': []})
答案

如果你有Python >=3.5,你可以在dict文字中使用关键字扩展:

>>> d = {'x': '2', 'y': '1'}
>>> {**d, 'x':1}
{'x': 1, 'y': '1'}

这有时被称为“喷溅”。

如果您使用的是Python 2.7,那么就没有相应的东西。这是使用超过7年的东西的问题。你必须做的事情如下:

>>> d = {'x': '2', 'y': '1'}
>>> x = {'x':1}
>>> x.update(d)
>>> x
{'x': '2', 'y': '1'}
另一答案

你可以通过创建一个基于原始的dict,然后为new / overriden键进行参数解包来实现这一点:

regions.append(dict(doc, **{'lat': '1234', 'lng': '1234'}))

以上是关于在Javascript中是否有python 2.7x中的Object spread语法?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Python 2.7 使 zip_longest 在 itertools 中可用

如何在 Python 2.7 中使用 tkinter 库 [关闭]

Python 2.7测试是否发送了SMTP邮件

在 Python 2.7 中检查字符串“None”或“not”

Python 2.7中的无内存泄漏OrderedDict替代方案?

Python 2.7 MySQLdb将从数据库读取的最后一行保存到文本文件中