Есть два списка A и B. Я хочу получить все элементы в A, но не в B. Любой эффективный способ сделать это?Как вычесть два итератора в python
0
A
ответ
8
Вы можете использовать список, чтобы сделать это за вас.
filtered = [i for i in A if i not in B]
Если списки и большие, вы можете рассмотреть вопрос о создании set
из B
для ускорения членства поиска
setB = set(B)
filtered = [i for i in A if i not in setB]
Это решение поддерживает порядок A
и дубликатов, которые существуют в A
.
4
я всегда хотел использовать наборы для этого:
set(A) - set(B)
редактирования: за исключением, если А имеет дубликаты или вы заботитесь о заказе, а затем использовать @ ответ Cyber в
+2
Это работает хорошо, пока заказ и количество предметов не имеют значения. –
-2
наборы идеально подходят для этой цели
set(A) - set(B)
например
>>> set([2,2,2,3,3,4])- set([1,2,2,4,5])
set([3])
кстати. это выглядит как this
Смежные вопросы
- 1. Как слить два итератора python?
- 2. Как вычесть два списка в Python
- 3. Вычесть Два DateTime объекты - Python
- 4. Как вычесть два разреза?
- 5. Как вычесть два удвоения?
- 6. Как добавить/вычесть два массива в java
- 7. как вычесть два типа данных?
- 8. Как вычесть два экземпляра gettimeofday?
- 9. Как вычесть два видеофрагмента в python с opencv
- 10. Как вычесть два дня джеда?
- 11. Вычесть два значения
- 12. вычесть два datetime
- 13. mongo вычесть два поля
- 14. вычесть два столбца в mysql
- 15. Вычесть два значения CHARINDEX
- 16. как вычесть два значения в jquery
- 17. как вычесть два файла в Linux
- 18. Как вычесть два шестнадцатеричных числа в VHDL?
- 19. Как вычесть два столбца в другой таблице
- 20. Как вычесть два datestr в matlab?
- 21. как вычесть два таблицы в PHP MySQL
- 22. Как вычесть два объекта календаря в Android
- 23. Как вычесть два последовательных элемента в NSArray
- 24. как вычесть два результирующие значения в MySQL
- 25. как вычесть два раза в sql-сервере?
- 26. Как вычесть два изображения в emgu cv
- 27. Как вычесть два «числа» в LC3?
- 28. Как вычесть два массива ячеек в Matlab
- 29. Как вычесть два строковых значения в java
- 30. Как вычесть два значения Datetime в C#?
Это может быть просто, как насчет сложности? – Avoen
@Avoen Если вы конвертируете 'B' в' set', это 'O (N)' сложность времени. – CoryKramer