虽然这个问题已经得到了回答,但是我认为了解如何构造一个应该包含空iterable的iterable是有用的。
在Python中,list()、set()、tuple()等构造函数接受一个iterable作为输入。因此,它们在iterable中迭代,并且类somthing list(tuple())不返回具有空元组的列表。相反,list构造器遍历元组,由于它没有任何项,因此会导致空列表。
要构造包含空元组的列表,请执行以下操作:
而不是my_list = list(tuple()) // returns [] or list()
做:my_list = [tuple()]
或:my_list = list([tuple()]) //constructor iterates through the list containing the empty tuple
类似地,如果要使包含空元组的集执行以下操作:
而不是my_set = set(tuple()) // returns set()
做:my_set = {tuple()}
或:my_set = set([tuple()]) // constructor iterates through the list, containing the empty tuple
这也适用于其他iterables。我写这篇文章是因为我自己在使用这些构造函数返回(例如,包含另一个空iterable的列表)时遇到了问题。