gpt4 book ai didi

python - 提高循环效率

转载 作者:行者123 更新时间:2023-12-01 04:33:05 25 4
gpt4 key购买 nike

我从 sqlite3 数据库中提取了 21,000 行,我需要将其放入字典中,然后将其附加到数组中。这个循环目前大约需要 1.531 秒,我正在尝试尽可能地减少它。有什么更快的方法可以做到这一点? (我使用的是python 2.7.3)

results = cursor.fetchall()
array = []
for row in results:
a = {}
b = row[11]
c = str(row[8])
d = str(row[9]) + " ? " + str(row[10])
e = row[3]
f = row[4]
key = e + " - " + f

rowToAdd = { 'aaa': row[3],
'bbb' : row[0],
'ccc' : row[1],
'ddd' : row[12],
'eee' : row[2],
'fff' : row[9],
'ggg' : row[1],
'hhh' : str(row[6]) + " (" + str(row[5]) + ")",
'iii' : e,
'jjj' : d,
'kkk' : f
}

rowToAdd.append(array)

有没有办法直接将光标输出映射到具有自定义键的字典列表?

有没有一种更Pythonic的方法可以加快速度?

最佳答案

将连接留给 SQLite,并使用 sqlite3.Row row factory相反,它为您提供了一个既可以用作元组又可以用作字典的对象。

让您的查询使用列别名来命名键:

cursor.execute('''
SELECT
col3 as aaa, col9 as bbb,
col6 || ' (' || col5 || ')' as hhh,
col9 || ' ? ' || col10 as jjj
FROM SOME_TABLE
''')

然后只需使用该结果而不是构建新列表。如果您必须有一个包含这些的列表,您可以使用:

array = cursor.fetchall()

array = list(cursor)

但是您可能最好迭代结果,因为您需要访问行。

关于python - 提高循环效率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32102480/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com