【发布时间】:2021-09-14 14:48:19
【问题描述】:
我正在努力实现以下目标,需要您帮助我快速处理字典:
- 如何获得“Nobody”“图像”值?它应该是“Nobody.png”
- 如何计算 BestMoments 成员的数量? (第一部电影应该是 3,第二部电影应该是 4"
- 如何在 Bestmoments 中获取“Nobody”的值(例如:“Survive”、120、8)?
var MV = [
["Nobody": [
["YEAR" : "2021"] ,
["IMAGE" : "Nobody.png"] ,
["GENRE" : "Action/Thriller"] ,
["DURATIONhours" : 1] ,
["DURATIONmintues" : 36] ,
["DURATIONseconds" : 17] ,
["BestMoments" : [["Win", 25, 5], ["Survive", 120, 8], ["Lose", 240, 15]]]
]],
["Godzilla vs. Kong": [
["YEAR" : "2021"] ,
["IMAGE" : "Nobody.png"] ,
["GENRE" : "Action/Sci-fi"] ,
["DURATIONhours" : 1] ,
["DURATIONmintues" : 22] ,
["DURATIONseconds" : 45] ,
["BestMoments" : [["Win", 34, 6], ["Survive", 120, 8], ["Twist", 233, 3], ["Lose", 340, 12]]]
]],
]
我尝试了以下方法来访问数据(带有结果):
print(MV[0])
// 打印第一部电影的所有数据
print(MV["Nobody"])
// 对下标的调用没有完全匹配
print([MV[0].keys])
// 打印第一部电影的名字,它是键
for (movie, data) in MV2 {
print(data)
}
//元组模式不能匹配非元组类型的值 [String : [[String : Any]]]]
【问题讨论】:
-
你有什么尝试,访问字典到底是什么问题?
-
再看这个我就明白这并不容易。这个结构的来源是什么,因为它看起来真的很糟糕,也许这里的解决方案是简化数据。
-
@JoakimDanielson 谢谢,我添加了一些尝试(已编辑的问题),之后我无法进一步。你的意思是它不适合这种数据结构吗?
-
它总是可行的 :) 我的意思是,如果结构更好,它会容易得多。
-
在使用此数据模型之前,将其转换为可用的东西。首先定义一个好的
struct层次结构,然后考虑如何将数据映射到该层次结构。提示 - 在结果层次结构中应该只有一个(或没有)字典。
标签: swift dictionary