我试图检查其他列表中是否存在字符串列表,它可能存在多次,所以当我打印结果时,结果中出现的次数超过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
我错过了一些我不知道它是什么的东西!
答案 0 :(得分:2)
您可以使用set comprehension而不是list comprehension:
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)
答案 1 :(得分:0)
12行print
语句表示print
语句运行12次,因为这是唯一被送到stdout的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()