所以我有一段时间没做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个元组
答案 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]