簡體   English   中英

Python以相同的順序對2個不同的大小列表進行排序?

[英]Python Sort 2 different Size lists in same Order?

我想根據元素順序對 2 個不同的長度列表進行排序。

我有 2 個 python 列表,它們共享一些元素,例如:

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

我知道使用 itertools 的 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

多謝 !

您可以使用set來獲取兩個列表中的所有元素,然后在列表理解中用 None 替換缺失值:

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']

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM