簡體   English   中英

設置列表后如何保留每個元素的原始索引

[英]How can I keep the original index of each element after setting a list

我有兩個相等大小的列表list_1list_2 ,每個列表包含40個元素。 我發現我可以通過使用設置映射對應的剩余字段

list(dict(zip(list_1, list_2)).items())

例:

list_1 = [ 'Bob', 'Johnson', '', '','25' ,'USA']
list_2 = [ 'Dan',  '', '','', '','UK']

使用以前的代碼輸出:

out_list = [ ('Bob','Dan'), ('Johnson',''), ('25',''), ('USA','UK')]

(這是所需的輸出!但是我也想要索引列表,如下所示)

我還想存儲每對的原始索引(兩個元素具有相同的索引,因為它們被映射在一起)。

index_list = [ 0, 1, 4 ,5] (已index_list = [ 0, 1, 4 ,5]索引2和3的元素)

我怎樣才能做到這一點?

您可以使用集合中的OrderedDict。

import collections
list(collections.OrderedDict(zip(list_1,list_2)).items())

我認為您可以簡單地使用以下列表之一:

 index_list = [list_1.index(each) for each in list_1 if each]

 output : [0, 1, 4, 5]

對於要顯示所有元素的字典,字典的鍵必須是唯一的並且不能為null,這是因為索引2和3被刪除的存在元素

zip(list1, list_2)

和輸出將:

[('Bob', 'Dan'), ('Johnson', ''), ('', ''), ('', ''), ('25', ''), ('USA', 'UK')]

暫無
暫無

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

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