我非常喜欢编码,并且不知道如何有效地比较jython中两个列表/数组中的元素。我有一个长度为5的列表,另一个长度为0到无穷大。元素不是任何顺序。我想找到两个列表中每个元素之间的区别。因此,如果list1 = [30,20,50,66,2]和list2 = [6,50,90],我应该有15个输出(len(list1)* len(list2))。我知道如何逐个比较每个元素,但我需要一种有效的方法来同时比较所有元素。我想我需要某种迭代器函数,但不知道如何实现它。
答案 0 :(得分:0)
This tutorial可能会有所帮助。
list1 = [30, 20, 50, 66, 2]
list2 = [6, 50, 90]
result = []
for item1 in list1:
for item2 in list2:
result.append( item1 - item2 )
print result
#[24, -20, -60, 14, -30, -70, 44, 0, -40, 60, 16, -24, -4, -48, -88]
答案 1 :(得分:0)
我想这应该做:
list_a=[30,20,50,66,2]
list_b=[6,50,90]
for i in list_a:
for j in list_b:
#compare here, i am assuming a differnce is the comparision you want to do
print i-j
答案 2 :(得分:0)
我发现列表推导更容易阅读:
from pprint import pprint
list1 = [30, 20, 50, 66, 2]
list2 = [6, 50, 90]
result = [[ one * two for one in list1] for two in list2]
pprint(result)
答案 3 :(得分:0)
list comprehensions的另一个选项:
如果相等则逐一进行比较
print [x==y for x in list2 for y in list1 ]
输出:
[False, False, False, False, False, False, False, True, False, False, False, False, False, False, False]
并打印匹配:
print [ x for x in list2 for y in list1 if x==y ]
输出:
[50]