Python:使用 if 语句只打印一次匹配项
Python: Print each match just one time with if statement
我正在尝试检查其他列表中的字符串列表是否存在,它可能存在不止一次,所以当我打印结果时,结果中出现的次数超过 1 次,我希望它打印每个出现一次:
这是我到目前为止一直在做的事情:
for i in range (0, len(spec)):
if spec[i] in my_list:
print ("R7:You mean:",spec[i])
spec 是一个字符串列表,正在尝试测试每个字符串是否存在于其他列表 (my_list) 中,字符串可能在 my_list 中重复(一个字符串可能存在超过一次)
输出得到:
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
预期输出:
R7:You mean: manège
R7:You mean: mangée
我遗漏了一些我不知道是什么的东西!
您可以使用集合理解而不是列表理解:
spec_unique = {result[:i]+s+result[i+1:]for i in range(len(result)) for s in L if s!=result[i]}
for s in spec_unique:
if s in my_list:
print ("R7:You mean:", s)
12 行 print
语句表明 print
语句是 运行 12 次,因为这是唯一被馈送到标准输出的 print
语句,并且该语句未嵌套在附加循环中。
这意味着 len(spec)
>= 12。我认为 spec
中有 5 个重复的 2 个独特元素。
尝试:
uniq_spec = set(spec)
for item in uniq_spec:
if item in my_list:
print("R7:You mean:", item)
参见示例:
if __name__ == '__main__':
str_list = ["words", "many", "many", "words"]
word_list = ["mana", "many", "word", "words", "words", "again"]
for item in set(str_list):
if item in word_list:
print(item)
input()
我正在尝试检查其他列表中的字符串列表是否存在,它可能存在不止一次,所以当我打印结果时,结果中出现的次数超过 1 次,我希望它打印每个出现一次:
这是我到目前为止一直在做的事情:
for i in range (0, len(spec)):
if spec[i] in my_list:
print ("R7:You mean:",spec[i])
spec 是一个字符串列表,正在尝试测试每个字符串是否存在于其他列表 (my_list) 中,字符串可能在 my_list 中重复(一个字符串可能存在超过一次)
输出得到:
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
R7:You mean: manège
R7:You mean: mangée
预期输出:
R7:You mean: manège
R7:You mean: mangée
我遗漏了一些我不知道是什么的东西!
您可以使用集合理解而不是列表理解:
spec_unique = {result[:i]+s+result[i+1:]for i in range(len(result)) for s in L if s!=result[i]}
for s in spec_unique:
if s in my_list:
print ("R7:You mean:", s)
12 行 print
语句表明 print
语句是 运行 12 次,因为这是唯一被馈送到标准输出的 print
语句,并且该语句未嵌套在附加循环中。
这意味着 len(spec)
>= 12。我认为 spec
中有 5 个重复的 2 个独特元素。
尝试:
uniq_spec = set(spec)
for item in uniq_spec:
if item in my_list:
print("R7:You mean:", item)
参见示例:
if __name__ == '__main__':
str_list = ["words", "many", "many", "words"]
word_list = ["mana", "many", "word", "words", "words", "again"]
for item in set(str_list):
if item in word_list:
print(item)
input()