作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我试图发送一个数据包,其中包含一些我放入字典中的键。这些需要按特定顺序打印,所以我尝试制作一个函数来重新排序它们。我假设 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/
使用登录后,我想吐出用户名。 但是,当我尝试单击登录按钮时, 它给了我力量。 我看着logcat,但是什么也没显示。 这种编码是在说。 它将根据我在登录屏幕中输入的名称来烘烤用户名。 不会有任何密码。
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎是题外话,因为它缺乏足够的信息来诊断问题。 更详细地描述您的问题或include a min
我是一名优秀的程序员,十分优秀!