keys = ['a','H','c','D','m','l']
values = ['a','c','H','D']
category = []
for index, i in enumerate(keys):
for j in values:
if j in i:
category.append(j)
break
if index == len(category):
category.append("other")
打印(类别)
我的预期输出是[' a'' H'' c',' D''其他&# 39;,'其他']
但我得到了[' a','其他'' H'' c',' D&# 39;,'其他']
答案 0 :(得分:1)
Python documentation break statement:
它终止最近的封闭循环。
使用“break”语句突破外部循环。执行永远不会到达内部while循环。
现在..解决你的字符串分类问题:
xs = ['Am sleeping', 'He is walking','John is eating']
ys = ['walking','eating','sleeping']
categories = []
for x in xs:
for y in ys:
if y in x:
categories.append(y)
break
categories.append("other")
print(categories) # ['sleeping', 'walking', 'eating']
迭代两个列表并检查是否有任何类别匹配。如果它们确实附加到类别列表并继续下一个要分类的字符串。如果没有找到任何匹配的类别(由匹配类别的数量小于当前索引定义(索引基于0,因此它们被移位1,这意味着==小于此情况),则归类为“其他