【发布时间】:2014-11-02 15:38:07
【问题描述】:
我正在尝试在 while 循环中编写一个 while 循环,但由于某种原因它没有按应有的方式工作。我知道我可能在这里遗漏了一些非常微不足道的东西,但我就是不明白它是如何不起作用的!
循环的目的是比较两个字符串,看它们是否包含任何相同的三个连续单词。我首先将这两个字符串拆分为它们各自的 3 个单词字符串组合的列表,这些组合存储在列表 strings 和 stringscompare 中。然后我循环遍历字符串中的每个 3 个单词字符串比较字符串中的每个 3 个单词字符串。
对于某些人来说,这可能看起来很长,但我只是一个新手程序员,任何改进都将不胜感激。
所以目前,第二个while循环一直运行,但是第一个只循环一次,对于strings中的第一个字符串。如果字符串匹配,我希望它从两个循环中中断,但是这些循环也在一个更大的 for 循环中,我不希望它中断。
例如
'这是一个字符串'
'这是另一个字符串' -- 不匹配
'这是一个字符串列表' -- 匹配 'this is a'
'列表是一个字符串' -- 应该匹配 'is a string' 但目前不匹配
strings = <list of 3 word strings> [...,...,...]
stringscompare = <list of 3 word strings to compare>
v=0, x=0
while v < len(strings) and stop == False:
while x < len(stringscompare) and stop == False:
if re.search(strings[v], stringscompare[x]):
same.append(dict)
stop = True
x += 1
v +=1
【问题讨论】:
-
如果没有字符串的具体示例,stringscompare 很难判断这里出了什么问题,但我的猜测是在内循环中,stop 设置为 True,因此外循环终止。您确定外部循环中的条件和 stop == False 是有意的吗?
标签: python string loops while-loop