Как взять список несопоставимых элементов при сравнении двух списков? - PullRequest
0 голосов
/ 10 мая 2019

У меня есть фактические имена файлов и списки ожидаемых имен файлов. Я должен подать соответствующие элементы из двух списков и записать его в одну строку файла CSV. А остальные элементы, которые не соответствуют спискам ожидаемых имен файлов, должны быть записаны в любом месте элементов фактического имени файла

Я написал код, похожий на , если фактическое имя файла в ожидаемых именах файлов записать в ту же строку файла CSV, иначе пусто. Но мне нужно, чтобы все остальные непревзойденные элементы ожидаемых файлов записывались в любой строке фактического имени файла. Если ожидаемое имя файла заканчивается, оставьте поле пустым.

Ожидаемые имена файлов

['AGN_2014Q4', 'AGN_2015Q4', 'AGN_2016Q4', 'AGN_2017Q4', 'AGN_2018Q4', 'AGN_2014Q3', 'AGN_2015Q3', 'AGN_2016Q3', 'AGN_2017Q3', 'AGN_2018Q3', 'AGN_2014Q2', 'AGN_2015Q2', 'AGN_2016Q2', 'AGN_2017Q2', 'AGN_2018Q2', 'AGN_2014Q1', 'AGN_2015Q1', 'AGN_2016Q1', 'AGN_2017Q1', 'AGN_2018Q1']

Фактические имена файлов

['AGN_2016Q1', 'AGN_38', 'AGN_2014Q3', 'AGN_19', 'AGN_2017Q4', 'AGN_2018Q4', 'AGN_31', 'AGN_2018Q1','AGN_2015Q1', 'AGN_2016Q4', 'AGN_2017Q2', 'AGN_2017Q3', 'AGN_2016Q2', 'AGN_2015Q4', 'AGN_2018Q2', 'AGN_2015Q3', 'AGN_2017Q1', 'AGN_2018Q3', 'AGN_35', 'AGN_2015Q2', 'AGN_34', 'AGN_2016Q3']

Результат должен быть в столбце csv file 2 (https://docs.google.com/spreadsheets/d/1CjMgIqc7BXrYx91AxGI7AIxsgcjW1fB4QRlnTHF9OGw/edit?usp=sharing)

1 Ответ

0 голосов
/ 10 мая 2019

Два списка с одинаковыми и разными значениями:

>>> a = ['a', 'b', 'c', 'd']
>>> b = ['c', 'd', 'e', 'f'] 

Во-первых, одинаковые значения в обоих списках:

>>> list(set(a).intersection(b))
['c', 'd']

Теперь, уникальный в первом и уникальный во втором списке:

>>> list(set(a) - set(b))
['b', 'a']
>>> list(set(b) - set(a))
['e', 'f']

Однако, как вы можете видеть, он теряет порядок. Вы можете отсортировать list с помощью a.sort()

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...