Are there any uses of the empty tuple in Python?
有没有任何其他用途(当我有需要的,因为它可能有一个空的元组)?或是你会使用空元组?Wi-Fi。我只是不能得到答案。答案为A,积极的:"是的,有"),请帮我把这个问题出在了我的头。"如果一个测试是在空元组是不可接受的",因为我们不希望你使用的运算符。
- "还有其他目的吗"?除了什么?
- 而不是使python元组定义在数学上正确。嗯,差不多。
这是什么时候。
1 2 3 4 5 6 7 8 9
| def tuple_of_primes_less_than( n ):
if n <= 2: return ()
else:
x, p = set( range(2,n) ), 2
while p <= max(x):
for k in range(2,int(2+math.sqrt(p))):
x.discard(k*p)
p += 1
return tuple( sorted( x ) ) |
- @阿迪鲁:你问这个问题之前不是很明显吗?
- 显然不是。你的问题应该是"为什么不明显?"我想我被它的不变性和空虚所欺骗了:)
- 既然我是您的函数代码的使用者,很明显。
- 坏榜样。相同类型的对象集合应为列表。例如,看看这个很好的答案(这是我现在发现的,但我记得在一个著名的来源看到了同样的想法)。
- 我必须同意@oleh prypin。您希望拥有所有素数,因此如果没有素数,则返回大小为0的列表。
您可能希望将函数的参数存储为元组,而不事先知道函数的结构。如果需要存储的函数不接受任何参数,则需要存储一个空元组。
这只是众多例子中的一个,说明为什么一般最好不要质疑边缘案例的存在,仅仅是因为我们无法想到它们的用途。支撑边缘箱的需求总是在不久之后出现。
- 我不怀疑它的存在,空元组在数学上是正确的。我只是想知道有多少不同的人用过它。
- "是否要将函数的参数存储为元组"?它们是一个元组。*args是一个可能为空的元组。
- @洛特:关键是你可能想存储它们,而不是它们是一个元组(我已经知道)。但是现在您提到它,函数参数作为元组传递的事实本身就是有时需要一个零长度的元组。
- 马塞洛是对的。考虑一个apply(),其中args参数是必需的,而不是可选的。你可以用一个空元组。
- 这甚至不是边缘情况。我经常使用空元组。
- @马塞洛:示例和建议为+1。@伦纳特:我把它作为一个边缘案例,因为我是如何构建我的问题的,尽管你一定是对的:)
- 对于您描述的用例,为什么不使用空列表?是不是有点牵扯到那些争论,或者其他什么?
- @Lennart:"边缘"并不意味着不频繁。我只是说它在某个范围的外缘。这种情况有一个特殊的名称,因为这种情况通常会导致算法或基础数学的崩溃;例如,计算一个数字列表的平均值直到列表为空为止是很好的;因此,当需要一个平均值时,边缘情况len(L) == 0会导致问题。
- @eksorto:我不会使用列表,因为函数参数作为元组传递给apply。将它们存储为列表是不必要的,而且效率低下。
元组表示任意的值序列。当需要描述空值序列时,可以使用空元组。
- 你的"什么时候"是我的问题。我不能投你反对票。
- @阿迪劳:这就像问你什么时候需要一个空列表或者一个空字符串。或者一个包含"floprzy"内容的字符串。:)
- 可能是的。或者更好的办法,让我换句话:"这就像问你什么时候需要一个空的不变的对象",把可变的对象放在问题之外。
- @Lennart:+1:不管怎样,这是一个很好的观点。