gpt4 book ai didi

python - 我应该避免重新打包多个未打包的可迭代对象吗?例如(*(1,2),*(3,4)) 得到 (1,2,3,4)

转载 作者:行者123 更新时间:2023-12-01 08:01:01 25 4
gpt4 key购买 nike

是否支持获取 (1,2,3,4) 的标准语法 (*(1,2),*(3,4))所以是可移植的还是它只是实现定义的语法所以应该避免?

在使用notepad++插件的python控制台时,我发现了两个

bytes((*range(ord('a'),ord('z')+1),*range(ord('A'),ord('Z')+1))).decode()

"".join(map(chr,(*range(ord('a'),ord('z')+1),*range(ord('A'),ord('Z')+1))))

但是这些导致了相同的语法错误。但我在 windows IDLE 3.6.3 shell 和 ubuntu python 3.6.5 ($ python3) 中尝试过,并且都有效。

所以我在 npp python 插件控制台中尝试了 (*(1,2), *(3,4)) ,与 IDLE 和 ubuntu 相比,它导致了相同的错误。

是否只是因为 npp 插件控制台不能很好地支持 python 或者语法不标准?

我试图查找信息,但我什至无法获取关键字。没有人谈论未打包的语法重新打包。

最佳答案

在 Python 3.7 中,它可以工作

x = (*(1,2), *(3,4))

在 python 3.4 中则不然

x = (*(1,2), *(3,4))

File "main.py", line 1
x = (*(1,2), *(3,4))
^
SyntaxError: invalid syntax

Python 3.5(我认为)引入了通过解包构建元组、字典等的新方法。

您可能在这两个环境中使用 2 个不同版本的 python-3.x。

这是另一个有趣的 dict 示例。合并两个字典,

d = {**d1, **d2}

这是PEP-448 - 引入了这个语法

关于python - 我应该避免重新打包多个未打包的可迭代对象吗?例如(*(1,2),*(3,4)) 得到 (1,2,3,4),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55731562/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com