比较jython中两个列表的元素

时间:2015-08-13 15:53:07

标签: python arrays list iterator jython

我非常喜欢编码,并且不知道如何有效地比较jython中两个列表/数组中的元素。我有一个长度为5的列表,另一个长度为0到无穷大。元素不是任何顺序。我想找到两个列表中每个元素之间的区别。因此,如果list1 = [30,20,50,66,2]和list2 = [6,50,90],我应该有15个输出(len(list1)* len(list2))。我知道如何逐个比较每个元素,但我需要一种有效的方法来同时比较所有元素。我想我需要某种迭代器函数,但不知道如何实现它。

4 个答案:

答案 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]