很抱歉在这里是个无名小卒,因为我是个新手
我一直在尝试写一个代码,可以找到一行中的某个单词,然后从第二个单词列表中进行匹配,看看第二个单词是否存在于同一行中。 只有当第一个单词不同时存在时才打印行;下面是代码片段和示例
keywords =("a","b","c","d")
keywords2 = ("e","f","g")
a = ("a is a ", "a is not e","b is b", "b is not f")
for key2 in keywords2:
for key in keywords:
for line in a:
if key2 not in line:
if key in line:
print(key+" Found in --> ")
print (line)
需要的输出是
^{pr2}$当我们有
a Found in -->
a is a
b Found in -->
b is b
b Found in -->
b is not f
a Found in -->
a is a
a Found in -->
a is not e
b Found in -->
b is b
a Found in -->
a is a
a Found in -->
a is not e
b Found in -->
b is b
b Found in -->
b is not f
我尝试过几种方法来实现循环,但是没有用
@joon用你问题的风格来回答;以下是一些其他的想法:
首先遍历行,因为代码的工作方式应该类似于问题“我应该打印这行吗?”对于每一行。在
联机尝试:https://repl.it/CgW8
For/else是一个Python思想,但有点奇怪——如果循环正常结束,
else:
将运行并打印行。如果循环中断,else:
将不会运行,也不会打印该行。在但是一个更惯用的答案是使用
^{pr2}$any()
,如果列表中的任何内容为真,则返回True,否则返回False:联机尝试:https://repl.it/CgW9
如果我理解正确,您只希望“行”的值来自}。在这种情况下,只需:
keywords
,而不是{[x for x in keywords if x in line]
循环遍历keywords
中的所有项,如果它们在line
中,则将它们添加到列表中。在[x for x in keywords2 if x in line]
循环遍历keywords2
中的所有项,如果它们在line
中,则将它们添加到列表中。在空列表被视为False,您希望
keywords
列表不为空,keywords2
列表为空。在这对你有用吗?在
相关问题 更多 >
编程相关推荐