python: поиск частичного совпадение в списке и вывод следующего элемента

reader = {'sdfsd - sdfdsf', '43252345', 'ecrf - wexex', '34534535', '233253', 'wwdwed - wedd'}
ch_1 = 'sdfsd - fxcf'
for row in reader:
    if ch_1 in row:
        list_1 = (row[row.index(ch_1) + 2])
        print(list_1)
    else:

        if (ch_1.partition('-')[0] + "-") in row:
            print(row[row.index(ch_1.partition('-')[0] + "-") + 2])

что то мне подсказывает, что частичное совпадение в индексе списка не вызвать


Ответы (1 шт):

Автор решения: CrazyElf

Не очень понял что вы хотите получить, но примерно так:

# поменял вид скобок, с теми скобками это set и ничего вообще нельзя сделать, значения лежат вперемешку
reader = ['sdfsd - sdfdsf', '43252345', 'ecrf - wexex', '34534535', '233253', 'wwdwed - wedd'] 
ch_1 = 'sdfsd - fxcf'

n = 2 # какой элемент по счёту мы хотим получить после совпадения
for i in range(len(reader) - n):
    if reader[i].partition('-')[0] == ch_1.partition('-')[0]:
        print(reader[i + n])

Вывод:

ecrf - wexex
→ Ссылка