#python #loops #if-statement #conditional-statements
Вопрос:
У меня есть два списка, и я хочу распечатать элемент первого списка и элемент второго списка на основе условия. Например, я хочу напечатать языки, связанные с использованием средств проверки, и язык, связанный с использованием средств перевода. Я не знаю, как включить это условие. Как печатать, не повторяя один и тот же язык? Мой код до сих пор приведен ниже:
tools=['translation;proofing','proofing','translation', 'language learning;proofing']
languages=['catalan;English', 'italian', 'french, german', 'english, portuguese']
for i in range(len(tools)):
for j in tools:
if "proofing" in j:
print(languages[i])
Мой результат должен быть примерно таким:
Корректура: каталанский, английский, итальянский, португальский
Перевод: каталанский, Английский, французский, немецкий
Ответ №1:
IIUC, попробуй:
proofing = list()
translation = list()
for t, l in zip(tools, languages):
if "proofing" in t:
proofing.append(l)
if "translation" in t:
translation.append(l)
>>> proofing
['catalan;English', 'italian', 'english, portuguese']
>>> translation
['catalan;English', 'french, german']
Если вместо этого вы имеете в виду, что хотите интерпретировать один элемент списка «каталанский;английский» как два языка, попробуйте использовать set
примерно так:
proofing = set()
translation = set()
for t, l in zip(tools, languages):
components = [x.strip().capitalize() for x in l.replace(",", ";").split(";")]
if "proofing" in t:
proofing.update(components)
if "translation" in t:
translation.update(components)
>>> proofing
{'Catalan', 'English', 'Italian', 'Portuguese'}
>>> translation
{'Catalan', 'English', 'French', 'German'}