Cześć, mam problem ze zrozumieniem dlaczego poniższy kod nie chce działać tak, jak sobie tego życzę.
Otóż jest lista ze stringami i jest słownik z dwoma parami key:value.
Wyjściowa lista powinna zawierać wszystkie stringi (w tym przypadku dwa: ['qaw', 'qxw']) które odpowiadają danym ze słownika, czyli że pod indeksem 0 powinna być litera 'q', a pod indeksem 2 litera 'w'
lst = ['qaw', 'qea', 'qrz', 'awq', 'swq', 'qxw', 'dwq']
dct = {0 : 'q', 2 : 'w'}
out = []
for item in lst:
for k,v in dct.items():
if item[k] == v:
out.append(item)
print(out)
Wykonanie powyższego kodu da wynik ['qaw', 'qaw', 'qea' , 'qrz', 'qxw', 'qxw'].
Jeśli słownik posiadał by tylko jedną wartość np {0:'q'} (lub jakąkolwiek inną) to na wyjściu będzie to czego można się spodziewać, czyli wszystkie stringi zaczynające się na 'q', ale nie wiem jak zrobić aby wszystkie warunki ze słownika były spełnione, zakładając że może być ich więcej niż próbowane przeze nie dwa.
Gdzie jest błąd?