если и для l oop в одну строку - PullRequest
0 голосов
/ 20 марта 2020

Я подхожу к Excel через openpyxl, и мне нужно сделать elif statment и для l oop в той же строке кода.

Что я хочу достичь, это:

Проверьте, не является ли значение None, если нет, выполните al oop в столбце, в котором вы ищете индекс соответствующего значения. Если вы не найдете значение в этом столбце, проверьте второй столбец, где это значение. Мне нужно создать элифную характеристику, которая будет направлять машину на то же, что и в «другой:» статистике, с которой я могу справиться, поскольку могу записать ее в виде цепочки и нескольких строк

Код I иметь:

for each in sheet['G'][1:]:
    indexing_no = int(sheet['G'].index(each)+1)
    indexing_column = int(sheet['G'].index(each))

    if each.value == None:
        pass
    else:
        for search_value in sheet['A'][1:]:
            if each.value == search_value.value:
                index_no = int(sheet['A'].index(search_value) + 1)
                sheet['H{name}'.format(name = indexing_no)].value = sheet['B{name}'.format(name = index_no)].value

1 Ответ

0 голосов
/ 20 марта 2020

Вы можете попробовать это:

columns = ("G","A","D") # column letters to search in parallel
values  = ( ((c,v) for v in sheet[c][:1]) for c in columns )
for row,colVal in enumerate(zip(*values),1)
    col,value = next( ((c,v) for c,v in colval if v is not None),("",None))
    if not col: continue # or break when no column has any value
    # ...
    # perform common work on first column that has a non-None value
    # using col as the column letter and value for the value of the cell
    # at sheet[col][row]
...