【发布时间】:2011-08-18 02:58:08
【问题描述】:
所以我正在尝试发送一个包含一些已放入字典中的键的数据包。这些需要按特定顺序打印,所以我尝试创建一个函数来重新排序它们。我假设 python 正在按照我不想要的顺序重新排列,但我不确定为什么。
我目前正在使用这个功能来尝试实现这一点。
def array_sort(array, sort): #yeah, it's array cuz i php like that.
ordered = {}
for i in range(0,len(sort)):
if sort[i] in array:
ordered[sort[i]] = array[sort[i]]
keys = array.keys()
return ordered
order = "l5,l4,l3,l2,q,y,k,k3,d1,z,p,c,b,d3,dt,N,n,a,h,v".split(',')
keys = array_sort(infos, order)
由于某种原因这不起作用,infos 是按字母顺序排列的键列表,我只是不确定为什么该函数以奇数顺序输出键。 (第一个,当 15 应该是第一个时:S)
如果您知道更好的方法,请随时告诉我,我最近才开始使用 python,所以我不太熟悉。
编辑: 在制作订单字典后,我能够立即使用它以正确的顺序打印密钥。即使它只是作为字符串输出,也会保留顺序(暂时),您可以再次 .split() 以正确的顺序获取字典(我认为)。
for i in range(0, len(order)):
if order[i] in infos:
packet += order[i] + '="' + infos[order[i]] + '" '
【问题讨论】:
-
你在使用字典值吗?我没看到。如果没有,请改用常规列表。
标签: python dictionary key