gpt4 book ai didi

swift - 从 ArraySlice 中解包字典

转载 作者:行者123 更新时间:2023-11-28 14:11:09 25 4
gpt4 key购买 nike

我有一个 ArraySlice<Dictionary<String, String>>里面只有一本字典。这看起来像下面这样:

[["high": "4", "investpercent": "6.0", "objective": "2.0", "savings": "2.0", "expenses": "1.0", "date": "2017-09-26", "low": "2"]]

但是我想用下标操作字典,ArraySlice 中没有实现。在典型的切片中,根据在 SO 中发现的问题,人们会做类似的事情:

let dictionary = ["a": 1, "b": 2, "c": 3]

var smallerDictionary: [String: Int] = [:]

for (key, value) in dictionary.dropFirst() {
smallerDictionary[key] = value
}

print(smallerDictionary) // ["a": 1, "c": 3]

我试过但在 ArraySlice 中不起作用。

  • 如何从 ArraySlice 中“解压”字典?

最佳答案

如果您的 ArraySlice 被称为 slice,请使用 slice.first!slice[slice.startIndex]访问包含的词典:

let slice: ArraySlice<[String:String]> = [["high": "4", "investpercent": "6.0", "objective": "2.0", "savings": "2.0", "expenses": "1.0", "date": "2017-09-26", "low": "2"]]

var smallerDictionary: [String: String] = [:]

for (key, value) in slice.first!.dropFirst() {
smallerDictionary[key] = value
}

print(smallerDictionary)

注意:在字典上调用 dropFirst() 会给您带来不可预知的结果,因为字典无序

不用说,在尝试访问包含的字典之前,您应该确保您的 ArraySlice 不为空。您可以通过显式检查 slice.count > 0!slice.isEmpty 或正确展开 slice.first 来做到这一点。

关于swift - 从 ArraySlice 中解包字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52525416/

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