我要做的是比较一个包含数百种不同版本的
的巨大列表['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的数字的单独列表中。
答案 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