Python 为什么不是';一个包含两个空列表的元组一个空元组?

Python 为什么不是';一个包含两个空列表的元组一个空元组?,python,python-3.x,tuples,Python,Python 3.x,Tuples,我有一个基本上从函数返回元组的脚本: results = some_function() 然后我检查是否有这样的结果: if results: do_something() 当元组有两个空列表时,返回True。使用调试模式时,我的结果是([],[])。运行len(结果)会产生2的长度 有趣的是,如果我这样做: results = ([]) print(len(results)) 它打印0。为什么添加另一个列表会打印2 我应该从生成元组的函数中重写类方法吗?元组由逗号而不是括号定义:

我有一个基本上从函数返回元组的脚本:

results = some_function()
然后我检查是否有这样的结果:

if results:
   do_something()
当元组有两个空列表时,返回
True
。使用调试模式时,我的
结果是
([],[])
。运行
len(结果)
会产生
2
的长度

有趣的是,如果我这样做:

results = ([])
print(len(results))
它打印
0
。为什么添加另一个列表会打印
2


我应该从生成元组的函数中重写类方法吗?

元组由逗号而不是括号定义:

>>> results = ([],)
>>> print(len(results))
1

([])
根本不是一个元组,它是一个空列表,周围写有paren。如果您想要一个单元素元组,请添加一个逗号:
([])
@free\u mind这是此类文章的重复规范。看见无论如何,以重复结尾意味着你的问题是未来读者查看主要问题的好路标。答案绝对正确<代码>([])
([]),
+1谢谢你的回答,我不知道这一点。