是否支持获取 (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/