Python 3.x 使用For循环查找列表中的元素

Python 3.x 使用For循环查找列表中的元素,python-3.x,Python 3.x,印刷品(类别) 我的预期输出是['a','H','c','D','other','other'] 但是我得到了['a','other','H','c','D','other']编辑:OP多次编辑了他的问题 它终止最近的封闭循环 您可以使用“break”语句中断外部循环。执行甚至从未到达内部while循环 现在。。要解决对字符串进行分类的问题,请执行以下操作: keys = ['a','H','c','D','m','l'] values = ['a','c','H','D'] category

印刷品(类别)

我的预期输出是['a','H','c','D','other','other']


但是我得到了['a','other','H','c','D','other']

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

它终止最近的封闭循环


您可以使用“break”语句中断外部循环。执行甚至从未到达内部while循环

现在。。要解决对字符串进行分类的问题,请执行以下操作:

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")

迭代两个列表,检查是否有任何类别匹配。如果它们确实附加到“类别”列表,并继续使用下一个要分类的字符串。如果未找到任何匹配类别(由匹配类别的计数小于当前索引定义(索引基于0,因此它们被移位1,这意味着==小于本例),则分类为“其他。

您打破了外部循环?看起来您的缩进减少了几个空格,这就是代码中的缩进吗?另外,尝试简单地打印条件(
print(m)
print(len(y))
print(My)因为你使用关键字= <代码>破解< /代码>来直接绘制Outter循环,它不会导致运行的内部循环。请检查:我只是复制并粘贴了代码。请不要考虑空间。代码中的空格是正确的……@维韦克,Python空间非常重要。因为我也尝试删除断言。并且添加了打印打印(I)为了测试它。外部循环,这是我开始无限地运行的值。@Vivek,当我们不知道最终目标是什么的时候,很难告诉你确切地做什么。但是我想你想在某个时候,根据某个条件打破循环。例如,如果条件==True:break我已经编辑了我的问题。现在你可以计算出我的预期输出tIt工作得很好,谢谢。但是你能解释一下‘对于索引,我在枚举(x)’‘为什么’对于索引’@Vivek我用“索引”来跟踪是否有匹配,但我不认为它是多余的。我会马上更新它。
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']