我有两个整数列表(只有正整数):a和b。现在,我想将a [0]与b [0],a [1]与b [1],a [2]与b [2]进行比较,依此类推,但是我不知道如何做。 >
更具体地说,我想知道a [0]和b [0]之间的距离,等等,并将结果保存在列表中(或者,最好是列出百分比的列表,如果较大的整数为100%,则较小的整数将占较大整数的百分比(fe 2是4的50%)。
我有Python 3.7.3。
答案 0 :(得分:6)
您可以将列表理解与zip
一起使用,并取abs
中每个tuple
中元素之间的差异:
[abs(i-j) for i,j in zip(l1,l2)]
如果您希望得到百分比差异(如前所述),则可以使用字符串格式:
['{0:.2f}%'.format((min(i,j)/max(i,j))*100) for i,j in zip(l1,l2)]
在两种情况下,通过压缩两个列表,您将创建一个元组列表,其中第i个元组包含每个参数序列或可迭代对象中的第i个元素:
list(zip(l1,l2))
# [(8, 3), (5, 6), (2, 4), (1, 3)]
例如:
l1 = [8,5,2,1]
l2 = [3,6,4,3]
['{0:.2f}%'.format((min(i,j)/max(i,j))*100) for i,j in zip(l1,l2)]
# ['37.50%', '83.33%', '50.00%', '33.33%']