比较两个列表的列表元素(略有不同)

Joh*_*ugh -1 python iteration list

我有两个整数列表(只有正数):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。

yat*_*atu 6

您可以将列表理解与一起使用zip,并求出abs每个元素之间的区别tuple

[abs(i-j) for i,j in zip(l1,l2)]
Run Code Online (Sandbox Code Playgroud)

如前所述,如果您想要百分比差异,可以使用字符串格式:

['{0:.2f}%'.format((min(i,j)/max(i,j))*100) for i,j in zip(l1,l2)]
Run Code Online (Sandbox Code Playgroud)

在两种情况下,通过压缩两个列表都可以创建一个元组列表,其中第i个元组包含每个参数序列或可迭代对象中的第i个元素:

list(zip(l1,l2))
# [(8, 3), (5, 6), (2, 4), (1, 3)]
Run Code Online (Sandbox Code Playgroud)

例如:

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%']
Run Code Online (Sandbox Code Playgroud)