final_list = [
['section', 'section', 'section', 3, 'mirror', 0, 'blue'],
['section', 'section', 'section', 3, 'mirror'],
['section', 'section', 'section', 3, 'light',],
['subsection', 'section', 'section', 3, 'light',]
]
criteria_list = ['section', 'section', 'section', 3]
cp = True
exclude_keyword = 'mirror'
for each_list in final_list:
for check in criteria_list:
if check in each_list and exclude_keyword not in each_list:
cp = True
else:
cp = False
if cp == True:
print(each_list)
我有这个循环,从列表中选择列表。它应该部分匹配criteria_list的开始元素,并排除后面的某些关键字元素,例如镜像元素。如何在for循环中部分匹配Python中的列表?
问题是它的部分不匹配criteria_list
的开始序列。所以基本上它返回['section', 'section', 'section', 3, 'light',]
和['subsection', 'section', 'section', 3, 'light',]
,而不是仅仅
['section', 'section', 'section', 3, 'light',]
为“小节”元素criteria_list的序列不匹配?
是否在'final_list'元素的顺序和'criteria_list'有关系吗?顺便说一句,在你的代码中检查'criteria_list'中的每个元素,以及它是否包含在'final_list'的内部列表中。因此,如果内部列表类似'['abc','def','section',3]',那么它也会返回'True',您可能不需要 – kuro
是的顺序很重要,我宁愿它返回true仅仅是开始序列匹配 – Darth
因此,内部列表必须以“section”开头,对吧? – kuro