比较两个列表并将它们添加到另一个列表

时间:2016-05-17 18:54:11

标签: python list append

我要做的是比较一个包含数百种不同版本的

的巨大列表
['8956', '39', '0', '220', '138', '152', '0.28\n']

(我们将调用此BigList)。我希望它与此比较

[47.0, 0.5, 219, 121, 220.763, 5]

(我们可以称之为smallList)。 BigList中可以忽略四位数字,因为它并不重要。比较时,如果BigList中的三个或更多数字大于smallList,我想将其附加到新列表,反之亦然。

我的想法是在for循环中比较它们,但我不知道如何检查每个单独的数字是大于还是小于它的比较。

编辑:例如:如果我们现在要比较两者。我想忽略' 8956'因为它对比较并不重要。然后我们开始比较并行列表。由于BigList只有两个大于smallList中的数字。我们将它放入一个包含小于smallList的数字的单独列表中。

2 个答案:

答案 0 :(得分:0)

假设您可以将两个列表转换为数字数据(看起来bigList是一个字符串),您可以使用numpy来实现您想要的目标。

示例:

In [104]: import numpy as np
In [105]: bigList = np.random.randint(10, size=10)
In [106]: smallList = np.random.randint(10, size=10)

In [107]: bigList
Out[107]: array([5, 3, 2, 1, 9, 2, 1, 9, 4, 4])

In [108]: smallList
Out[108]: array([0, 7, 9, 2, 5, 4, 4, 3, 1, 3])

In [109]: np.greater(bigList, smallList)
Out[109]: array([ True, False, False, False,  True, False, False,  True,  True,  True], dtype=bool)

In [110]: np.greater(bigList, smallList).sum()
Out[110]: 5

每当bigList中的元素大于smallList中的元素时,您都会将1添加到总和中。

因此,要解决您的问题,您可以在np.greater(bilgiest, smallList)

上设置条件

答案 1 :(得分:0)

从Biglist中删除数字大于4的数字,并将其他数字附加到新的Biglist,可用于从小列表中进行比较

 Updatedbiglist = []
 for big in Biglist:
     if len(str(big))<4:
         Updatedbiglist.append(big)  

您可以使用python zip运算符,它将两个列表成对合并。现在比较列表元素

变得容易了
new_list = []
for big,small in zip(Updatedbiglist,Smalllist):
    if big > small:
        new_list.append(big)

print new_list

new_list将包含biglist

中较大的元素