Python:比较相同的列表

时间:2016-06-19 00:27:21

标签: python list

我试图创建一个程序,该程序要求八个列表中的任何一个等于单独的列表。我有几个列表变量:testC1,testC2等和xwin,以及一个字符串:结果很难解释,所以这里是代码:

result = ("n")
print ("testD1 is:",str(testD1)) #Debugging
print ("xwin is:",str(xwin)) #Debugging
if (testC1 or testC2 or testC3 or testR1 or testR2 or testR3 or testD1 or testD2) == (xwin):
    result = ("x")
else:
    pass
print (result) #Debugging

当代码运行时,我得到以下结果:

>>> testD1 is: ['x', 'x', 'x']
>>> xwin is: ['x', 'x', 'x']
>>> n

我希望得到" x"因此,我只想检查一个(或多个)列表(在本例中为testD1)是否与' xwin'相同。

我知道有可能通过一系列if,elif语句,但我确信必须有一些方法可以做到这一点,而不是那样做。我在这种情况下对语法不太确定。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

非空列表在布尔上下文中求值为True,例如,如果你有:

([] or ['a', 'b', 'c'] or ['x', 'x', 'x']) == (['x', 'x', 'x'])

条件的左侧部分将导致['a', 'b', 'c']不等于['x', 'x', 'x']

然后做你想做的事你可以替换

(testC1 or testC2 or testC3 or testR1 or testR2 or testR3 or testD1 or testD2) == (xwin)

通过

xwin in (testC1, testC2, testC3, testR1, testR2, testR3, testD1, testD2)