如何使用 Python 中的条件将一个列表的项目与另一个列表的项目相关联?
How to associate items of one list with items of another list with a condition in Python?
我有两个列表,我想根据条件打印第一个列表的项目和第二个列表的项目。例如,我想打印与校对工具的使用相关的语言以及与翻译工具的使用相关的语言。我不知道如何包括条件。如何打印而不重复相同的语言?
到目前为止我的代码如下:
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])
我的输出应该是这样的:
校对:加泰罗尼亚语、英语、意大利语、葡萄牙语
翻译:加泰罗尼亚语、英语、法语、德语
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']
如果您的意思是您想要将单个列表元素“catalan;English”解释为两种语言,请尝试使用 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'}
我有两个列表,我想根据条件打印第一个列表的项目和第二个列表的项目。例如,我想打印与校对工具的使用相关的语言以及与翻译工具的使用相关的语言。我不知道如何包括条件。如何打印而不重复相同的语言? 到目前为止我的代码如下:
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])
我的输出应该是这样的:
校对:加泰罗尼亚语、英语、意大利语、葡萄牙语
翻译:加泰罗尼亚语、英语、法语、德语
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']
如果您的意思是您想要将单个列表元素“catalan;English”解释为两种语言,请尝试使用 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'}