неверный поиск значений в списке
reader = ['R5', '34234', 'adfsd - fcasd', 'sadfa', 'R6', '343 - rf3', 'sdfe', 'R5', 'sqagf', 'sadfasd', 'afwegf']
n = 2
ra_3 = []
ch_3 = 'adfsd - sfdfd'
for row in reader:
row = ['5' if x == 'R5' else x for x in row]
row = ['6' if x == 'R6' else x for x in row]
if ch_3 in row:
ra_3.append(row[row.index(ch_3) + n])
else:
if ch_3 not in row:
for i in range(len(row) - n):
if row[i].partition('-')[0] == ch_3.partition('-')[0]:
ra_3.append(row[i + n])
else:
if row[i].partition('-')[0] != ch_3.partition('-')[0]:
for i in range(len(row) - n):
if row[i].partition('-')[2] == ch_3.partition('-')[2]:
ra_3.append(row[i + n])
код не всегда верно ищет значения: надо, чтобы после первого поиска, если значения найдены, поиск останавливался; если не найдены - переходил к следующему поиску. Путаница с if else и for программа должна сделать ra_3 = [6]