使用For循环查找列表中的元素

时间:2018-03-07 19:53:19

标签: python-3.x

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;,'其他']

1 个答案:

答案 0 :(得分:1)

编辑:OP多次编辑他的问题。

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,这意味着==小于此情况),则归类为“其他