Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当一个列表或另一个列表与第三个列表相同时,如何使程序停止?_Python - Fatal编程技术网

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!

您的
应该是