Python 当一个列表或另一个列表与第三个列表相同时,如何使程序停止?
我的目标是当两个列表中的一个与另一个列表相同时停止程序 我曾多次尝试以不同的方式来实现这一点,但都没有成功 以下是相关代码:Python 当一个列表或另一个列表与第三个列表相同时,如何使程序停止?,python,Python,我的目标是当两个列表中的一个与另一个列表相同时停止程序 我曾多次尝试以不同的方式来实现这一点,但都没有成功 以下是相关代码: tower1 = [3, 2, 1] tower2 = [ ] tower3 = [ ] checkl = [3, 2, 1] if not tower2 == checkl or not tower3 == checkl: #move numbers around else: #do something else 有人知道我想做什么吗 谢谢 您可以
tower1 = [3, 2, 1]
tower2 = [ ]
tower3 = [ ]
checkl = [3, 2, 1]
if not tower2 == checkl or not tower3 == checkl:
#move numbers around
else:
#do something else
有人知道我想做什么吗
谢谢 您可以使用中的
操作符:
if checkl in (tower2, tower3):
# do something else
else:
# move numbers around
由于您将一个列表与两个列表进行比较,因此还可以链接不平等性测试:
if tower2 != checkl != tower3:
# move numbers around
else:
# do something else
如果相同索引中的元素相等,则列表相等。你的比较似乎不正确。如果任何列表(2号塔、3号塔)不相等,它将移动数字
if tower2 == checkl or tower3 == checkl:
# do something
else:
# move numbers
由于您的请求是“当一个列表或另一个列表与第三个列表相同时停止的程序”,因此我假设您考虑的是while
循环。下面是一个完整的工作代码,用于移动数字,直到tower2
和tower3
之间的数字与check1
相同
import numpy as np
tower1 = [3, 2, 1]
tower2 = [ ]
tower3 = [ ]
checkl = [3, 2, 1]
# keep looping until tower2 == check1 or tower3 == check1
while tower2 != checkl and tower3 != checkl:
print('tower2:', tower2, '; tower3:', tower3, '--> keep looping')
if tower2 != checkl and tower3 != checkl:
# move numbers around
tower2 = list(np.random.permutation([1, 2, 3]))
tower3 = list(np.random.permutation([1, 2, 3]))
else:
# stop the program
break
print('tower2:', tower2, '; tower3:', tower3, '--> done!')
输出:
tower2: [] ; tower3: [] --> keep looping
tower2: [1, 2, 3] ; tower3: [2, 1, 3] --> keep looping
tower2: [1, 3, 2] ; tower3: [2, 3, 1] --> keep looping
tower2: [2, 3, 1] ; tower3: [2, 3, 1] --> keep looping
tower2: [3, 2, 1] ; tower3: [3, 1, 2] --> done!
您的或
应该是和
。