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

这个单行for循环在Python中是如何工作的?[列表理解],python,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 ORD

以下是代码示例:

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()]
我只是想了解,这一行是怎么做的,特别是,我知道这是一种速记方式,但有人能提供长版本的外观吗?

那一行是一个。这是一个“长”版本

names  = []

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

这叫做列表理解,在python文档中有很好的解释。谢谢,如果将来有人问同样的问题,我会更改标题。谢谢,我一直在寻找这种语法的确切名称。非常感谢你的回答。