python 中 if 语句的重复结果

问题描述 投票:0回答:2
token_list = ['lg', 'was', 'beaten']

defined_words = ['hand', 'leg', 'head', 'arm', 'finger', 'wrist', 'thigh']

for i in range(0, len(token_list), 1):
    if token_list[i] in defined_words:
        print(token_list[i])
        break
    elif token_list not in defined_words:
        print('no injury')

在上面的代码中,当在定义的列表中找不到标记列表中的所有单词时,我不希望它打印三次无损伤。让它打印一次不受伤

python for-loop if-statement printing
2个回答
0
投票

试试这个:

token_list = ['lg', 'was', 'beaten']

defined_words = ['hand', 'leg', 'head', 'arm', 'finger', 'wrist', 'thigh']

for i in range(0, len(token_list), 1):
    if token_list[i] in defined_words:
        print(token_list[i])
        break
else:
    print('no injury')

如果到达循环末尾且没有提前中断,则执行

else
循环的
for
子句

参见:https://docs.python.org/3/tutorial/controlflow.html#break-and-continue-statements-and-else-clauses-on-loops


0
投票

Python 有一个方便的

for-else
构造,在这里很有用:

token_list = ['leg', 'was', 'beaten']

defined_words = ['hand', 'leg', 'head', 'arm', 'finger', 'wrist', 'thigh']

for word in token_list:
    if word in defined_words:
        print(word)
        break
else:
    print('no injury')

请注意,这里的 else 子句与 for 对齐,而不是与 if 对齐。仅当 for 循环not 中断时,才会执行此 else 子句。

© www.soinside.com 2019 - 2024. All rights reserved.