这个单行for循环如何在Python中工作? [列表理解]

时间:2013-04-05 08:45:36

标签: python

以下是代码示例:

from django.shortcuts import render_to_response
import MySQLdb

def book_list(request):
    db = MySQLdb.connect(user='me', db='mydb', passwd='secret', host='localhost')
    cursor = db.cursor()
    cursor.execute('SELECT name FROM books ORDER BY name')
    names = [row[0] for row in cursor.fetchall()]
    db.close()
    return render_to_response('book_list.html', {'names': names})

该行特别是:

names = [row[0] for row in cursor.fetchall()]

我只想了解,特别是这一行,我明白这是一种简单的做事方式,但有人可以提供长版本的样子吗?

1 个答案:

答案 0 :(得分:5)

该行是list comprehension。这是一个“长”版本。

names  = []

for row in cursor.fetchall():
    names.append(row[0])