2015-10-13 90 views
0

示例創建字典:字典處理任意方式的元素。因此,我得到了與我的列表x不相關的混合順序的輸出。根據訂單檢索字典元素

x = [100,2,300,4,75] 
    dct = {} 
    for i in x: 
     dct['lst_%s' % i] = [] 
     for z in range(0,5): 
      dct['lst_%s' % i].extend((x[z],x[z-1])) 
    print(dct) 
    {'lst_300': [100, 75, 2, 100, 300, 2, 4, 300, 75, 4], 'lst_75': [100, 75, 2, 100, 300, 2, 4, 300, 75, 4], 'lst_100': [100, 75, 2, 100, 300, 2, 4, 300, 75, 4], 'lst_2': [100, 75, 2, 100, 300, 2, 4, 300, 75, 4], 'lst_4': [100, 75, 2, 100, 300, 2, 4, 300, 75, 4]} 

使用排序的鍵我得到字典標題對應於我的列表x,但我怎樣才能檢索相同的元素?

x = [100,2,300,4,75] 
dct = {} 
for i in x: 
    dct['lst_%s' % i] = [] 
    for z in range(0,5): 
     dct['lst_%s' % i].extend((x[z],x[z-1])) 
print(sorted(dct)) 
['lst_100', 'lst_2', 'lst_300', 'lst_4', 'lst_75'] 
+1

字典根據定義未排序。你究竟想在這裏完成什麼? :) – favoretti

+0

我想要根據x元素排列dct:例如list_100,list_2,list_300和list_75及其對應的元素列表。 –

+1

請參閱下面的答案。口號是無序的。期。您不能訂購它們,您只能在列表中訂購鍵,然後按順序循環使用字典,但您無法訂購字典。 – favoretti

回答

3

dict根據定義無序。如果您確實需要有序地圖,請使用collections.OrderedDict