gpt4 book ai didi

python 字典排序奇怪(想要非字母顺序)

转载 作者:行者123 更新时间:2023-11-28 16:51:18 26 4
gpt4 key购买 nike

所以我试图发送一个数据包,其中包含一些我放入字典中的键。这些需要按特定顺序打印,所以我尝试制作一个函数来重新排序它们。我假设 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,所以我不是很熟悉。

编辑:在制作订单字典后,我能够立即使用它以正确的顺序打印 key 。即使它只是作为字符串输出,顺序也会被保留(暂时),您可以再次 .split() 它以正确的顺序获取字典(我认为)。

for i in range(0, len(order)):
if order[i] in infos:
packet += order[i] + '="' + infos[order[i]] + '" '

最佳答案

由于 Python 中的字典是无序的,您只需要输出按指定规则排序的结果,您可以这样做:

order = "l5,l4,l3,l2,q,y,k,k3,d1,z,p,c,b,d3,dt,N,n,a,h,v".split(',')

for key in order:
print key, infos.get(key)#if infos is your dictionary

或者您可以通过以下方式获取/传递列表而不是字典:

print [(key, infos.get(key)) for key in order]

关于python 字典排序奇怪(想要非字母顺序),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7101883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com