Я пытаюсь написать фрагмент кода, который считывает некоторые строки с листа (используя openpyxl), а затем создает список на основе данных в строках и существующего списка (который основан на том же листе). Я создал цикл, который выполняет эту работу, но он слишком медленный, когда он получает файл большего размера. Есть ли способ сделать это быстрее?
biglist = []
rows = #some rows extracted from Excel with openpyxl
lists = [[1, 'E1000', 0], #this is just a small sample
[1, 'F1000', 0],
[1, 'G1000', 4],
[1, 'H1000', 3],
[1, 'I1000', 5],
[2, 'E1000', 1]]
for row in rows:
for cell in row:
smalllist =[]
smalllist.append(1)
smalllist.append(cell.coordinate)
style = 0
for l in lists:
for i,cl in enumerate(l):
if l[i][0] == smalllist[0] and l[i][1] == smalllist[1]:
style = l[i][2]
smalllist.append(style)
smalllist.append(cell.value)
biglist.append(smalllist)
Что действительно замедляет цикл, так это кусок:
for l in lists:
for i,cl in enumerate(l):
if l[i][0] == smalllist[0] and l[i][1] == smalllist[1]:
style = l[i][2]
Есть ли способ ускорить его? Я пробовал использовать карты и списки, но это было не намного быстрее или даже медленнее.