gpt4 book ai didi

python - 在 Python 中对具有非数字索引的多维字典进行问题排序

转载 作者:太空宇宙 更新时间:2023-11-04 01:34:40 24 4
gpt4 key购买 nike

所以我有一个多维字典,它有一个数字键来标识一个内部字典,但内部字典没有数字键。我很难根据其中一个内部字典的字符串索引的值创建一个排序的键列表。我可能没有正确描述问题,所以这里有一个突出显示问题的示例脚本:

#! /usr/bin/python
my_dict = {
12608: {
'market_data': {
'sellVolume': 69210, 'buyValue': 296.20999999999998,
'sellValue': 523.20000000000005, 'buyVolume': 9210899
}
},
24513: {
'market_data': {
'sellVolume': 42148, 'buyValue': 548.95000000000005,
'sellValue': 890.0, 'buyVolume': 11213386
}
},
12773: {
'market_data': {
'sellVolume': 383000, 'buyValue': 609.54999999999995,
'sellValue': 799.98000000000002, 'buyVolume': 10285288
}
},
24486: {
'market_data': {
'sellVolume': 1314250, 'buyValue': 99.780000000000001,
'sellValue': 425.0, 'buyVolume': 14690060
}
},
2801: {
'market_data': {
'sellVolume': 247577, 'buyValue': 348.98000000000002,
'sellValue': 518.94000000000005, 'buyVolume': 10325916
}
}
}

d_sorted = sorted(my_dict, key=lambda \
x: my_dict[x]['market_data']['buyValue'], reverse=True)

print "key\tbuyValue"
for key in d_sorted:
print "%d\t%.2f" % (key, my_dict[key]['market_data']['sellValue'])

这是脚本的结果

# Results:
# key buyValue
# 12773 799.98
# 24513 890.00
# 2801 518.94
# 12608 523.20
# 24486 425.00

# Expected:
# key buyValue
# 24513 890
# 12773 799.98
# 12608 523.2
# 2801 518.94
# 24486 425

示例词典不是我的完整用例,而是一个精简版本以显示问题(例如,还有另一个对问题不重要的内部词典)。我提到这个是因为可能有比我不知道的字典更好的数据类型可以使用,我是 python 的新手。

question here帮助我走到这一步,我看到的主要区别是我的第二个维度不使用整数键。

如果重要的话,我使用的是 python 版本 2.6.7。

最佳答案

正如我在问题下方的评论中所说,您的表格标题显示“BuyValue”,而您正在打印“Sell value”。按照您的预期输出,我认为您只是在设置排序器函数时犯了一个小错误。

应该是:

lambda x: my_dict[x]['market_data']['sellValue']

而不是

lambda x: my_dict[x]['market_data']['buyValue']

关于python - 在 Python 中对具有非数字索引的多维字典进行问题排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10970704/

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