一个里面有多个项目的元组列表

时间:2019-03-06 20:24:34

标签: python sql python-3.x list tuples

所以我有一段时间没做python了,也不需要处理它,所以如果我犯了一些愚蠢的错误,不要发疯。

我有一个列表,该列表从最后一个.fetchall()的SQLite数据库中提取,它返回一个元组的列表,并且该元组内部是所有结果:

[('Bob', 'Science Homework Test', 'Science homework is a test about Crude Oil development', 'Science-Chemistry', '2019-03-06', '2019-02-27', None, 0)]

我想进入这个元组以获取项目,但是如果我循环列表,它似乎什么也没做。 我想这样做是为了pop()列表中的一个项目,其中Science-Chemistry是HTML选择选项。 我以前看过,但似乎没有人遇到同样的问题,列表中只有1个元组

3 个答案:

答案 0 :(得分:2)

如果返回列表中总是只有一个元组,则可以将其解压缩为有意义的命名变量,其数量应与查询中输出列的数量匹配:

(name, test, description, subject, updated, created, flags, score), = cursor.fetchall()

请注意括号后的逗号,使其成为一个序列的第一个元组。

答案 1 :(得分:1)

您可以将其视为list和tuple的嵌套索引,即第一个索引将为您提供一个列表元素,即tuple,第二个索引将为您提供该tuple的元素。

让我们将上面的列表分配给变量a。

a = [('Bob', 'Science Homework Test', 'Science homework is a test about Crude Oil development', 'Science-Chemistry', '2019-03-06', '2019-02-27', None, 0)]

a[0] = 1st element of list (a tuple)
a[0][3] = 4th element of that tuple

答案 2 :(得分:0)

我建议从最外部的元素转到内部的元素。一开始,您有一个包含一个元组的列表。

>>>> result = [('Bob', 'Science Homework Test', 'Science homework is a test about Crude Oil development', 'Science-Chemistry', '2019-03-06', '2019-02-27', None, 0)]

要获取元组,只需获取列表的第一项:

>>> tuple_ = result[0]
('Bob', 'Science Homework Test', 'Science homework is a test about Crude Oil development', 'Science-Chemistry', '2019-03-06', '2019-02-27', None, 0)

然后,您可以遍历它或像访问数组一样访问它,以获取各项:

for item in tuple_:
    # do stuff with the item
    print(item) 

item = tuple_[0]