Сравнение элементов списка двух списков (с изюминкой) - PullRequest
0 голосов
/ 12 мая 2019

У меня есть два списка целых чисел (только положительные): a и b.Теперь я хочу сравнить a [0] с b [0], a [1] с b [1], a [2] с b [2] и так далее, но я не знаю, как это сделать.

В частности, я хочу узнать расстояние между a [0] и b [0] и т. Д. И сохранить результаты в списке (или, что еще лучше, я хочу получить список процентов, если большее целое число будет равно 100%, сколько процентов будет меньше, чем большее (например, 2 равно 50% от 4)).

У меня есть Python 3.7.3.

1 Ответ

6 голосов
/ 12 мая 2019

Вы можете использовать понимание списка с 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)]

Где в обоих случаях, упаковав оба списка в zip, вы создаете список кортежей, где 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%']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...