你如何创建一个空的元组列表?

时间:2015-05-23 02:51:40

标签: python python-2.7

我试图在调用extend时创建一个包含元组的新空列表。这是我宣布清单的地方:

ticketData = list()

我遍历另一个列表,将元组添加到此列表中:

data = (0, requestor, subject, thetime)
ticketData.extend(data)

当我输出结果时,它会显示:

[0, 'Name', 'Test Subject', '03:31:12']

我需要它是一个元组列表,而不仅仅是一个列表,以便我可以使用sqlite的executemany函数。

看起来很直接,但我还没有在这里找到答案。谢谢!

2 个答案:

答案 0 :(得分:12)

只需将其附加到列表中,这样就可以添加元组而不是让元组的元素扩展列表。

ticketData.append(data)

会将data添加到列表ticketData

答案 1 :(得分:0)

尽管已经回答了这个问题,但我认为了解如何构造应包含空Iterable的Iterable很有用。 在Python中,构造函数(如list(),set(),tuple()等)将iterable作为输入。因此,它们遍历可迭代的对象,例如list(tuple())不会返回带有空元组的列表。取而代之的是,列表构造函数遍历元组,并且由于其中没有任何项,因此会导致列表为空。

要构建包含空元组的列表,请执行以下操作:

代替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

这也适用于其他可迭代对象。我写这篇文章是因为我自己在使用这些构造函数返回例如包含另一个空Iterable的列表。