Как повторить i в for i in words_1 при условии else?
Есть 2 списка с буквами, один с маленькими - начальный, а второй с большими. words_1 = ['Q','w','e'] У меня есть цикл for i in word и в нем есть условие if и else. В if содержится еще один цикл при условии что буква маленькая, а в else изменяется словарь на второй(большие буквы). Проблема в том что после else цикл for берет букву w. Можно ли как то вернутся к предыдущей букве Q что бы не дублировать код из if в else? На самом деле задание там немного больше по этому вот часть кода.
keyboard_lower = [['a','b','c','d','e','1','2','3'], ['f','g','h','i','j','4','5','6'], ['k','l','m','n','o','7','8','9'],
['p','q','r','s','t','.','@','0'], ['u','v','w','x','y','z','_','/'], ['aA',' ']]
keyboard_upper = [['A','B','C','D','E','1','2','3'], ['F','G','H','I','J','4','5','6'], ['K','L','M','N','O','7','8','9'],
['P','Q','R','S','T','.','@','0'], ['U','V','W','X','Y','Z','_','/'], ['aA',' ']]
words_1 = ['Q','w','e']
keybord_changes = keyboard_lower
T_F = False
for j in words_1:
if j.isupper():
if T_F:
for n_s, i in enumerate(keybord_changes):
if j in i:
print(n_s,keybord_changes[n_s].index(j))
else:
s_point = [5,0]
T_F = True
keybord_changes = keyboard_upper
Ответы (1 шт):
Вы можете обращаться к элементам списка с помощью индексов, т.е. вместо for j in words_1 использовать for j in range(len(words_1)) и тогда можете обратиться к предыдущей букве с помощью words_1[j - 1]. Если же нужно сделать шаг назад в цикле, то лучше переменную j объявить до цикла и каждую итерацию цикла увеличивать её на 1.