Я практикую Python, для которого я ОЧЕНЬ новичок, и подумал, что смогу применить его к небольшому раздражению, которое я испытываю при выполнении VLOOKUPS в excel.У нас есть огромные базы данных, длиной более 15 000 строк и до GG в столбцах, поэтому мне нужен простой способ проверить номер столбца для поиска, а не для выделения, которое задерживается или подсчитывается вручную.
Я пробовал следующий код, который работает до некоторой степени.Это позволяет мне проверять значение двух разных трехколоночных кодов (Excel Max - XFD);но если я сравниваю столбец AA и XFD, возникает ошибка, поскольку в [2] нет значения для начала, там нет массива.
Как я могу исключить это или проверить, существует ли оно до того, как я выполнюдля цикла?
def get_character_distance2(start,end):
endList = list(end)
print(endList)
startList = list(start)
print(startList)
firstDistance = 0
secondDistance = 0
thirdDistance = 0
totalEnd = 0
totalStart = 0
for item in endList[0]:
firstDistance += (ord(item.upper()) - ord(startList[0])) + 1
for item in endList[1]:
secondDistance += ((ord(item.upper()) - ord(startList[1])) + 1) * 26
for item in endList[2]:
thirdDistance += ((ord(item.upper()) - ord(startList[2])) + 1) * 676
totalStart += firstDistance + secondDistance + thirdDistance
print(firstDistance)
print(secondDistance)
print(thirdDistance)
print(totalStart)
для результата:
get_character_distance2('AAA','ZZZ')
Результат (Fine):
['Z', 'Z', 'Z']
['A', 'A', 'A']
26
676
17576
18278
Другой чек:
get_character_distance2('AA','ZZZ')
Плохой результат:
['Z', 'Z', 'Z']
['A', 'A']
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
<ipython-input-185-c330b0ebbf1d> in <module>()
----> 1 get_character_distance2('AA','ZZZ')
<ipython-input-182-a080de45986e> in get_character_distance2(start, end)
23
24 for item in endList[2]:
---> 25 thirdDistance += (ord(item.upper()) - ord(startList[2]))
26 thirdDistance +=1
27 thirdDistance *= 676
IndexError: list index out of range
Я просто хочу, чтобы то же самое, что и первое, добавляло значения циклов for при условии, что на самом деле есть уровень, на который можно сосчитать.Если значения массива нет, можно предположить, что число там равно 0.