【发布时间】:2016-12-31 08:21:33
【问题描述】:
如何比较列表之间的每个值。应该是完全匹配的。
list1 = ['same1', 'same2']
list2 = ['notsame1', 'notsame2']
list3 = ['same1', 'same2']
def comp(list1, list2, list3):
if set(list1) & set(list2):
print "Train A is active and instances are %s." % list2
elif set(list1) & set(list3):
print "Train B is active and instances are %s." % list3
else :
print "No Trains are active"
comp(list1, list2, list3)
尽管我在 list3 = ['not_same1', 'same2'] 中有一个不同的值,但上面的代码仍将 Train B 返回为活动状态
看起来它只是从列表中检查一个值,即使元素没有顺序,我如何比较所有元素。
看起来**set** 已被弃用,欢迎使用其他任何方式。
【问题讨论】:
-
为了比较值,我想你想要
==。从您的问题来看,您期望的输出并不完全清楚。 -
set()不会被弃用。 Python2 是。 -
“看起来
set正在被弃用”我没有听说过,我认为它永远不会发生,至少不会很快。 -
澄清一下,你想让
['same2', 'same1']等于['same2', 'same1']和['same1', 'same2'],还是应该['same2', 'same1']不等于['same1', 'same2']?您的问题对此并不完全清楚,至少对我而言。 -
list3不包含'not_same1'。