[英]How can I keep the original index of each element after setting a list
我有兩個相等大小的列表list_1
和list_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.