从列表中的列表返回元素

时间:2013-03-11 21:57:57

标签: python python-2.7 mysql-python

我正在尝试从较大列表中的嵌套列表中选择第一个元素。我试图从MySQL表中返回名称值。我建立了与服务器的连接,然后执行以下操作:

cur = db.cursor()
cur.execute("SELECT * FROM prototype")
db.commit()
results = cur.fetchall()
for name in cur:
    print results[0]

我得到以下输出:

('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)
('orange', 50L, 3L)

重复正确的条目数,但只返回一个条目。如何让它返回每个条目的名称?完整的结果是:

(('test', 3L, 1L), ('apple', 10L, 2L), ('orange', 50L, 3L), ('\tbanana', 1L,4L),     ('test1', 5L, 5L), ('test5', 5L, 6L), ('test3', 3L, 7L), ('gui', 1L, 8L), ('test10', 5L,  9L), ('screws', 10L, 10L))

2 个答案:

答案 0 :(得分:4)

那么你应该循环你的results

cur = db.cursor()
cur.execute("SELECT * FROM prototype")
db.commit()
results = cur.fetchall()
for name in results:
    print name[0]

上面的代码得到的是tuple元组,因此for循环的每次迭代都会将每个连续元组分配给name。现在要检索该元组的值,您可以通过name[0]将其称为第一个元素,将name[1]称为第二个元素,依此类推。

答案 1 :(得分:2)

更改

for name in cur:
    print results[0]

for result in results:
    print result[0]