Python Сортировка 2 разных списков размеров в том же порядке? - PullRequest
1 голос
/ 28 января 2020

Я хочу отсортировать 2 разных списка длины на основе поэлементного порядка.

У меня есть 2 python списков, которые разделяют некоторые элементы, такие как:

list_1 = [b,e,a,d,c]
list_2 = [b,a,c,k,l,f,d]

Я знаю, что с помощью itiptools's zip_longest я могу отсортировать 2 разных размера списка:

for k,j in zip_longest(list_1 ,list_2 ,fillvalue=None):
     print (k,j)

И этот код дает мне следующее:

b b
e a
a c
d k
c l
None f
None d

Но возможно ли сортировать и те же значения в том же порядке, как:

[a,b,c,d,e,None,None,None]
[a,b,c,d,None,f,k,l]

или в другом формате:

a,a
b,b
c,c
d,d
e,None
None,f
None,k
None,l

Большое спасибо!

1 Ответ

3 голосов
/ 28 января 2020

Вы можете использовать set, чтобы получить все элементы в обоих списках, а затем заменить отсутствующие значения на Нет в понимании списка:

list_1 = ['b','e','a','d','c']
list_2 = ['b','a','c','k','l','f','d']
combined = sorted(set(list_1 + list_2))

new_list_1 = [c if c in list_1 else None for c in combined]
new_list_2 = [c if c in list_2 else None for c in combined]

print(new_list_1, new_list_2, sep='\n')

Результаты:

['a', 'b', 'c', 'd', 'e', None, None, None]
['a', 'b', 'c', 'd', None, 'f', 'k', 'l']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...