2015-10-13 49 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