Найдите список, если он не содержит, с другим списком списка. Питон

#python #numpy #python-requests #data-cleaning

Вопрос:

 import pandas as pd
first_csv = [['a','b'],['a','d'],['a','c']]
second_csv = [['a','b']]
scraped = []
need_to_scrape = []
 

Мне нужно проверить, что [‘a’,’b’] находится в first_csv, а затем добавить его в очищенный
если нет, то добавьте данные в need_to_scrape.

 Output,,
scraped = [['a','b']]
need_to_scrape = [['a','d'],['a','c']]
 

Комментарии:

1. Что вы пробовали? Вы должны обновить сообщение с попыткой решить проблему.

Ответ №1:

Вы можете использовать стандартное list понимание

 first_csv = [['a', 'b'], ['a', 'd'], ['a', 'c']]
second_csv = [['a', 'b']]

scraped = [k for k in first_csv if k in second_csv]
need_to_scrape = [k for k in first_csv if k not in second_csv]

print('scraped', scraped)
print('need_to_scrape', need_to_scrape)

>>> scraped [['a', 'b']]
>>> need_to_scrape [['a', 'd'], ['a', 'c']]
 

Ответ №2:

вы можете попробовать set

 first_csv = [['a','b'],['a','d'],['a','c']]
second_csv = [['a','b']]

first_csv_tuple = set(map(tuple, first_csv))
second_csv_tuple = set(map(tuple, second_csv))

scraped = first_csv_tuple.intersection(second_csv_tuple)
need_to_scrape = first_csv_tuple.difference(second_csv_tuple)

print(scraped) #{('a', 'b')}
print(need_to_scrape) #{('a', 'd'), ('a', 'c')}