Python 声明一个字符串的元组的最干净的方法

Python 声明一个字符串的元组的最干净的方法,python,Python,使用函数声明一个字符串的元组会为字符串中的每个项生成一个元素 (Pdb) tuple('VERSION',) ('V', 'E', 'R', 'S', 'I', 'O', 'N') 使用逗号声明元组感觉像是一种副作用,我觉得很容易错过 (Pdb) ('VERSION',) ('VERSION',) 有没有一种更干净的方式来做出这样的声明 对于上下文,我使用一个元组的元组,并对所有单个值进行迭代。我只是让它们成为一个项目的元组,而不是特殊情况下的单个值 编辑:我知道我不清楚这一点 我个人不喜欢

使用函数声明一个字符串的元组会为字符串中的每个项生成一个元素

(Pdb) tuple('VERSION',)
('V', 'E', 'R', 'S', 'I', 'O', 'N')
使用逗号声明元组感觉像是一种副作用,我觉得很容易错过

(Pdb) ('VERSION',)
('VERSION',)
有没有一种更干净的方式来做出这样的声明

对于上下文,我使用一个元组的元组,并对所有单个值进行迭代。我只是让它们成为一个项目的元组,而不是特殊情况下的单个值

编辑:我知道我不清楚这一点

我个人不喜欢
('VERSION',)
的声明,所以我试了一下

(Pdb) tuple('VERSION',)
('V', 'E', 'R', 'S', 'I', 'O', 'N')`
并发现函数声明具有此行为

我很感兴趣地发现,可以用一个元组声明来封装元组声明,这是可行的

(Pdb) tuple(['VERSION'])
('VERSION',)
(Pdb) tuple(('VERSION',))
('VERSION',)

如果要按名称调用元组,可以编写
tuple(['foo'])
tuple(('foo',)

tuple
构造函数接受一个iterable,并且,除非它已经是一个tuple,否则它将使其元素成为tuple的元素。这是没有办法的

定义1元组的惯用方法是
foo
,)
。我个人认为,
,)
是一个很难错过的标志,但口味各不相同

为了最终的清晰,只需创建自己的功能:

def-tu(值):
返回(值,)

现在,您可以
tu('foo')
得到一个元组。

这是一个很好的问题,我们应该如何区分两个括号和一个元素元组之间的差异,请看以下示例:

>>> a = (1)+(2)
>>> a
3
>>> b = (1,)+(2,)
>>> b
(1, 2)

python的语法之美在于,
看起来像是一个额外的东西,但它使
()
操作符和
元组
有所不同。因此,当创建长度为1的元组时,应该使用它。

这不是副作用;逗号是定义元组、句点的方式
x,y
也是一个元组;只有当逗号可能被误认为是另一种用法(例如,在函数调用中分隔参数)时,才需要
(x,y)
中的括号。您可以使用
元组([“string”])
但这并没有让元组成为常规元组那么有效way@Sayse这不是有效的最佳实践btw@Mohsen_Fatemi-这就是我写的,在副作用的定义下,用逗号声明元组感觉像是副作用?我不会调用任意命名的函数,你需要找到它的定义看看它有什么“终极清晰”。基于观点的问题在这里通常是离题的。我只是概述了可能性;我想没有其他不那么人为的方法来创建元组。你就看着办吧