1
我有我從一個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的方式來做到這一點,將加快?
讓您的* SQL查詢*執行字符串連接併爲每列指定一個名稱。然後使用一個遊標來爲它的每一行生成一個字典,然後你所要做的就是'array = list(cursor)'。 –
例如1.不追加,但預先分配數組,並只填充它,節省不必要的創建/銷燬中間階段2.刪除'dict'並使用sth else(甚至簡單的'list')應該更快 –
@ NikosM .:字典不是什麼在這裏慢;它甚至使用文字語法。 –