gpt4 book ai didi

ios - 按对象值的属性快速排序字典

转载 作者:搜寻专家 更新时间:2023-10-31 08:13:21 32 4
gpt4 key购买 nike

我有一本像 <String,Loto> 这样的字典Loto 是如下对象;

Loto:   
{
"success": true,
"data": {
"oid": "64kbbqi8dbxygb00",
"hafta": 961,
"buyukIkramiyeKazananIl": "",
"cekilisTarihi": "11/04/2015",
"cekilisTuru": "SAYISAL_LOTO",
"rakamlar": "03#02#48#16#15#08",
"rakamlarNumaraSirasi": "02 - 03 - 08 - 15 - 16 - 48",
"devretti": false,
"devirSayisi": 0,
"bilenKisiler": [
{
"oid": "64kbbxi8dbxyg403",
"kisiBasinaDusenIkramiye": 7.35,
"kisiSayisi": 185712,
"tur": "$3_BILEN"
},
{
"oid": "64kbbxi8dbxyg402",
"kisiBasinaDusenIkramiye": 53.05,
"kisiSayisi": 9146,
"tur": "$4_BILEN"
},
{
"oid": "64kbbxi8dbxyg401",
"kisiBasinaDusenIkramiye": 4532.2,
"kisiSayisi": 142,
"tur": "$5_BILEN"
},
{
"oid": "64kbbxi8dbxyg400",
"kisiBasinaDusenIkramiye": 1528438.75,
"kisiSayisi": 1,
"tur": "$6_BILEN"
}
],
"buyukIkrKazananIlIlceler": [
{
"il": "10",
"ilView": "BALIKESÄ°R",
"ilce": "01001",
"ilceView": "AYVALIK"
}
],
"kibrisHasilati": 51127,
"devirTutari": 0.09,
"kolonSayisi": 10537872,
"kdv": 1599672.97,
"toplamHasilat": 10537872,
"hasilat": 8938199.03,
"sov": 893819.9,
"ikramiyeEH": 8044379.129999999,
"buyukIkramiye": 1528432.03,
"haftayaDevredenTutar": 0
}
}

所以我的字典像 <"11042015",Loto> 并且我想通过 loto 对象的“hafta”属性对这本字典进行排序。

我该怎么做?请帮助我!

最佳答案

如果Loto是一个带有 hafta 的对象属性,您可以通过将字典传递给 sorted 来对字典进行排序函数,以及一个告诉它如何排序条目的闭包:

sorted(dict) { $0.1.hafta < $1.1.hafta }

( $0.1$1.1 因为字典以键/值对序列的形式出现 - 你想按值的属性排序,即元组条目 1 )

请注意,这将为您返回一个排序数组,类型为 [(String,Loto)]对,而不是字典(因为 Swift 字典是无序的)。

(如果 Loto 实际上不是一个对象而是另一个字典,您可能需要执行 {$0.1["hafta"] < $1.1["hafta"]} - 这实际上取决于您如何保存数据 - 好消息是您无需担心关于可选值,因为它们可以与 < 进行比较)

如果不需要键,只需对值进行排序:

sorted(dict.values) { $0.hafta < $1.hafta }

这将返回一个类型为 [Loto] 的排序数组

关于ios - 按对象值的属性快速排序字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30029528/

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