Python 你能解释一下这段代码吗?

Python 你能解释一下这段代码吗?,python,Python,这让我有点困惑。我知道它会迭代SQL结果集,但是一步一步地解释它的作用会非常好: [{columns[index][0]:column for index, column in enumerate(value)} for value in db.cursor.fetchall()] 这是一个非常简明的列表理解表,相当于以下内容: res = [] for value in db.cursor.fetchall(): pairs = [] for index, colum

这让我有点困惑。我知道它会迭代SQL结果集,但是一步一步地解释它的作用会非常好:

[{columns[index][0]:column for index, column in enumerate(value)}
    for value in db.cursor.fetchall()]

这是一个非常简明的列表理解表,相当于以下内容:

res = []
for value in db.cursor.fetchall():
    pairs = []
    for index, column in enumerate(value):
        pairs.append((columns[index][0], column))
    d = dict(pairs)
    res.append(d)

res
列表相当于您上面写的内容。

您不了解其中的哪部分?你知道
[c中a代表b]
的作用吗?你知道db.cursor.fetchall()的作用吗?你知道
enumerate()
做什么吗?具体点。事实上,这并不能显示您的工作(如果事实上您已经自己努力解决了这个问题)。为什么不在调试器或交互式可视化工具中运行它(最好是使用硬编码的示例,而不是整个程序的其余部分),这样您就可以一次一个表达式地执行它?然后,如果其中任何一个对您来说不明显,您将知道要查找或询问什么。或者,如果您甚至不知道如何查找或询问,请将其分解为一系列单独的语句,每个语句将一个中间表达式分配给一个临时变量,然后打印出每个临时变量。这将为您提供与调试器或可视化工具相同的信息,只是有点繁琐。使用dict文本,它将是
res.append({columns[index][0]:column for index,column in enumerate(value)})