У меня есть несколько длинных списков в python и они сравнивают их и находят списки, которые равны друг другу, за исключением последних элементов в них. Какой самый быстрый способ?Сравнение списков Python
ответ
Используйте что-то наподобие if list1[:-1] == list2[:-1]
.
a[:-1]
является сокращением для «всех элементов a
, но последний». Если вам нужно исключить более одного элемента, измените значение 1 на нужный вам номер.
a[:-1] == b[:-1]
будет сравнивать a
и b
без их окончательных элементов.
См. this для получения дополнительной информации о разрезе.
Чтобы сравнить два списка, я думаю, что-то вроде этого бы избежать копирования любой части вашего списка, и останавливается, как только обнаружится несовпадение:
len(a)==len(b) and all(a[i] == b[i] for i in range(len(a)-1))
Чтобы найти все матчи в произвольном множестве списков , Я думаю, вам нужно сравнить каждую пару списков - или, по крайней мере, каждую пару, в которой вы не проверяли какую-либо эквивалентную версию (например, если A = B и B = C, вам не нужно проверять А = С). Я не знаю из-за алгоритма, который делает это простым.
В качестве альтернативы, если списки возмутительно длинны, и вы хотите избежать их перемещения, вы могли бы вычислить контрольную сумму первых элементов N-1 каждого, а затем просто сравнить контрольные суммы.
Как вычислить контрольную сумму, чтобы избежать прохождения списков? – nmichaels
Если вам нужно сравнить каждый список со всеми остальными, вы смотрите на проходы N * (N-1)/2. Если вы вычисляете хэши для каждого, у вас есть только N обходов исходных списков. В зависимости от того, сколько списков «несколько» есть и как долго «длинные списки», это может избежать большого количества переходов! В любом случае, контрольная сумма достаточно хороша. – Ken
Этот ответ может потенциально сравнить каждый элемент в списке с другой той же длиной - не все, кроме последнего элемента, поэтому он не затрагивает вопрос. – martineau
- 1. Python: Сравнение двух списков
- 2. Basic Python: сравнение списков
- 3. Python Сравнение списков
- 4. Сравнение двух списков, python
- 5. Python - Сравнение списков
- 6. Python Сравнение вложенных списков
- 7. Сравнение нескольких списков Python
- 8. Python: Сравнение списков
- 9. Сравнение списков в Python
- 10. Python: Сравнение идентичных списков
- 11. Сравнение двух списков - Python
- 12. Python: сравнение списков по правилам
- 13. Сравнение двух списков в python
- 14. Python: Сравнение двух списков CSV
- 15. Сравнение двух списков в python
- 16. Python - Сравнение двух списков множеств
- 17. Сравнение совпадений списков в Python
- 18. Сравнение списков словарей в Python
- 19. Сравнение двух списков в Python
- 20. Python: сравнение двух списков диктов
- 21. Сравнение списков с dictviews
- 22. Сравнение списков с <
- 23. Сравнение сложных списков
- 24. Сравнение двух списков списков Строка
- 25. Сравнение двух отсортированных списков в python
- 26. Сравнение двух неизвестных списков в Python
- 27. Сравнение двух больших списков в python
- 28. Сравнение элементов из двух списков в Python
- 29. Сравнение списков и словаря в python
- 30. Сравнение двух списков в Python (почти одинаковые)
Вы хотите исключить последний элемент каждого списка или найти общие префиксы? –