找回密码
 立即注册
奇速版本论坛200M带宽开服微端链接失效申报超级稳定服务器抗攻击
点击金币投放广告点击金币投放广告点击金币投放广告点击金币投放广告
查看: 524|回复: 18

字典初始化赋值时自动排序混乱导致实用性不佳

[复制链接]

26

主题

363

回帖

803

积分

版主

积分
803
发表于 2024-7-3 12:02:34 | 显示全部楼层 |阅读模式
bug提交
M2版本: 20240613
BUG描述: ;mov s463 {asdf:244,aaaa:185,asdfas:114,asdfas1:124,asdfas2:41,asdfas3:214,asdfas4:54,asdfas7:64}
;mov s465 asdf:7,沙拉:6,asdfas:5,疯子:4,小鸡:3,**:2,aming:1,lemon:0

mov d$j8 <$str(s463)>
mov d$j81 {<$str(s465)>}

有以上2组数组储存在S变量,字典初始化时,上面字符会混乱排列,导致数据混乱
BUG重现方式(步骤,流程等): 输出结果:
sendmsg 6 asdf,aming,asdfas,lemon,小鸡,**,疯子,沙拉
通过MOV赋值字典后,上面的数据变成了以上排列方式在字典内
修复BUG后应达到的效果: 按原始数据顺序排序
联系QQ: 919102551
BUG专用端下载地址:
按原始数据顺序排序
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

67

主题

76

回帖

955

积分

高级会员

积分
955
发表于 2024-7-3 13:33:57 | 显示全部楼层
所有高级编程语言里面的字典原生就是无序的,你算什么bug,你可以对键或值进行排序,比如做排行榜,使用字典等数据结构有很多方法,甚至都可以用几种基本的数据结构来构建更复杂的结构,比如树,图,堆栈等等…
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

26

主题

363

回帖

803

积分

版主

积分
803
 楼主| 发表于 2024-7-3 15:08:30 | 显示全部楼层
meixi78 发表于 2024-7-3 13:33
所有高级编程语言里面的字典原生就是无序的,你算什么bug,你可以对键或值进行排序,比如做排行榜,使用字 ...

在初始化数据时,不应该按照给予的数据进行顺序录入字典吗?
我确实还没完全用好字典,请教下大神

如果我要给以下数据排序。
按VALUE值从小到大或从大到小,排序完成后,键值需要对应。
请问该如何处理?
{asdf:7,沙拉:6,asdfas:5,**:2,aming:1,lemon:0,疯子:4,小鸡:3}
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

26

主题

363

回帖

803

积分

版主

积分
803
 楼主| 发表于 2024-7-3 15:12:12 | 显示全部楼层
本帖最后由 alkj111 于 2024-7-3 15:13 编辑

当我把a:1,b:2,c:3,d4,这4对键值对 赋值给字典时,

但是这个字典内却变成了:d:4,a:1,c:3,b:2

这是我遇到的问题



上面的数据是举例,实际上赋值字典后,字典可能按首位及顺序位的ASCII排列的
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

26

主题

363

回帖

803

积分

版主

积分
803
 楼主| 发表于 2024-7-3 15:18:58 | 显示全部楼层
实际的列子是这样的,我通过程序段自动生成了以下值储存在S465
S465=asdf:7,沙拉:6,asdfas:5,疯子:4,小鸡:3,**:2,aming:1,lemon:0

数据生成后,就已经排好序了
当我把上面的值赋值给 mov D$j8 <$str(s465)>后

实际上的D$j8={asdf:7,aming:1,asdfas:5,lemon:0,小鸡:3,**:2,疯子:4,沙拉:6}
导致这个数据就没法用了,于是我只能用回数组,并将数据分开保存。如果字典不乱序的话,一个变量就可以了

这个不正常吧?
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

44

主题

106

回帖

452

积分

中级会员

积分
452
发表于 2024-7-3 19:21:02 | 显示全部楼层
字典的数据结构本就是无序的,不要用字典做排序!
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

5

主题

18

回帖

223

积分

中级会员

积分
223
发表于 2024-7-3 19:44:05 | 显示全部楼层
数组是有序的,你可以用2个数组分别存储键和值
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

26

主题

363

回帖

803

积分

版主

积分
803
 楼主| 发表于 2024-7-5 09:28:47 | 显示全部楼层
lm11000 发表于 2024-7-3 19:21
字典的数据结构本就是无序的,不要用字典做排序!

是赋值后乱序,不是排序
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

26

主题

363

回帖

803

积分

版主

积分
803
 楼主| 发表于 2024-7-5 09:29:43 | 显示全部楼层
云天河 发表于 2024-7-3 19:44
数组是有序的,你可以用2个数组分别存储键和值

是的目前只能这么做。
如果有一组数据,只能赋值给数组以保持原来的顺序
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

44

主题

106

回帖

452

积分

中级会员

积分
452
发表于 2024-7-6 01:06:48 | 显示全部楼层
alkj111 发表于 2024-7-5 09:28
是赋值后乱序,不是排序

都说了是无序的了,你以为赋值就有序了吗
请大家不要恶意灌水,回复纯数字、纯字母、纯表情等内容的直接禁言1周处理!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|翎风引擎论坛 |网站地图

GMT+8, 2025-5-1 14:16 , Processed in 0.053800 second(s), 28 queries , Gzip On, Redis On.

Powered by haom2 X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表