У програмуванні Python порівняння двох списків є звичайним завданням із кількома підходами. У цій статті досліджуються різні методи визначення відмінностей між двома списками, покращуються ваші навички роботи зі списками та порівняння даних у Python . Приєднуйтесь до нас у цій проникливій подорожі до різних стратегій розпізнавання відмінностей між списками.
приклад
Input: list1 = [10, 15, 20, 25, 30, 35, 40] list2 = [25, 40, 35] Output: [10, 15, 20, 30] Explanation: resultant list = list1 - list2>
Примітка: Якщо у вас є кілька однакових елементів, це не спрацює. У цьому випадку цей код просто видалить ті самі елементи.
У цьому випадку ви можете підтримувати кількість кожного елемента в обох списках.
Способи порівняння двох списків у Python
Існують різні способи порівняння двох списків у Python. Тут ми обговорюємо деякі загальновживані методи порівняння двох списків у Python, наведені нижче.
- Використання в методі
- Використання розуміння списку
- використання встановити() функція
- використання Numpy
- Використання zip() функція
- Підрахувати випадки за допомогою Лічильник
Python у ключовому слові для порівняння двох списків у Python
У цьому прикладі код повторює елементи в списку 'li1' і додає кожен елемент до 'temp3', якщо його немає в списку 'li2'. Кінцевий результат у `temp3` містить елементи з `li1`, яких немає в `li2`.
Python3
приклад обрізки альфа-бета
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> temp3>=> []> for> element>in> li1:> >if> element>not> in> li2:> >temp3.append(element)> print>(temp3)> |
>
>
Вихід
[10, 15, 20, 30]>
Різниця між двома списками в Python за допомогою розуміння списку
У цьому прикладі код створює набір «s» з елементів списку «li2», а потім генерує новий список «temp3», що містить елементи зі списку «li1», яких немає в наборі «s». Нарешті, він друкує елементи в «temp3».
Python3
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)> |
>
>
Вихід
[10, 15, 20, 30]>
Знайдіть різницю між двома списками в Python за допомогою set()
У цьому методі ми явно перетворюємо списки на набори, а потім просто зменшуємо один від іншого за допомогою оператора віднімання. Для отримання додаткової інформації відвідайте сайт Набори на Python . Це подібна техніка, яку ми використовували раніше. Єдина відмінність полягає в тому, що ми замінили вкладені цикли на розуміння списку синтаксис.
Python3
li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> s>=> set>(li2)> temp3>=> [x>for> x>in> li1>if> x>not> in> s]> print>(temp3)> |
>
>
Вихід
[10, 15, 20, 30]>
Використовуйте Numpy для Порівняйте два списки в Python
The numpy.concatenate() функція об’єднує послідовність масивів уздовж існуючої осі. У цьому прикладі код використовує NumPy для створення масивів «li1» і «li2», знаходить встановлені відмінності між ними («dif1» і «dif2») і об’єднує ці відмінності в єдиний список («temp3»), нарешті друкуючи результат.
Python3
латексні списки
import> numpy as np> li1>=> np.array([>10>,>15>,>20>,>25>,>30>,>35>,>40>])> li2>=> np.array([>25>,>40>,>35>])> dif1>=> np.setdiff1d(li1, li2)> dif2>=> np.setdiff1d(li2, li1)> temp3>=> np.concatenate((dif1, dif2))> print>(>list>(temp3))> |
>
>
Вихід
[10, 15, 20, 30]>
Порівняйте два списки в Python за допомогою функції zip().
У цьому прикладі код порівнює відповідні елементи двох списків, li1 і li2, і створює список логічних значень, що вказує, чи елементи рівні. Функція `all` перевіряє, чи всі елементи в списку результатів мають значення True.
Python3
нарізка java
li1>=> [>10>,>15>,>20>]> li2>=> [>25>,>40>,>35>]> result>=> [a>=>=> b>for> a, b>in> zip>(li1, li2)]> print>(>all>(result))> |
>
>
Вихід
False>
Порівняйте два списки за допомогою підрахунку випадків за допомогою лічильника
У цьому прикладі код використовує клас `Counter` з модуля `collections` для створення лічильників частоти для двох списків, `li1` і `li2`. Потім він порівнює лічильники, щоб перевірити, чи містять списки однакові елементи з однаковими частотами, призначаючи результат `are_lists_equal`.
Python3
from> collections>import> Counter> li1>=> [>10>,>15>,>20>,>25>,>30>,>35>,>40>]> li2>=> [>25>,>40>,>35>]> counter1>=> Counter(li1)> counter2>=> Counter(li2)> are_lists_equal>=> counter1>=>=> counter2> print>(are_lists_equal)> |
>
>
Вихід
False>