当前位置: 首页 > 知识库问答 >
问题:

如何从字典中获取数据

葛越
2023-03-14

我有一张狗的名单,需要取一些数据。在一种情况下,我需要在列表中显示名称行,在其他情况下,我需要来自一只狗的全部或部分数据(名称、性别、速度)。我相当肯定我应该使用数组,尽管我是从字典开始的。我计划添加更多参数,并允许用户添加更多的狗,所以我试图找到最可扩展的选项

struct Dog {
    var name: String
    var gender: String
    var speed: Int
    }

struct MyDogs {
    let myDogs = [
        Dog(name: "Saleks", gender: "Male", speed: 50),
        Dog(name: "Balto", gender: "Male", speed: 70),
        Dog(name: "Mila", gender: "Female", speed: 20)
        ]
 }

共有1个答案

程英资
2023-03-14

警告:我没有可用的IDE,可能有一些语法错误。

作为参考,您演示的是而不是多维数组。3d数组是这样的。

let some3DArray =
    [["Hello", "World"],
    ["This", "Is", "An"],
    ["Multidimensional","Array"]]

要访问示例中的值,根据您的要求,您可以这样做。

//To loop through all the dogs in your array. Useful for your "List"
for dog in yourDogs {
    print(" Name: \(dog.name) "
}

// To find a dog based on some property you can do something like this.
let dog = {
    for dog in yourDogs {
        if dog.name == yourSearchValue {
            return dog
        } else {
            //HANDLE NULL VALUE 
            //What do you want to happen if NO dog is found?
        }
        return null
    }
}

// You can use the values from the array by accessing it directly via an index.
// This can be done with whatever conditional you need to specifically reach.
let specificDog = dogs[3]

// Once you have your copy of the specific dog you want to access.
// You can then get the values of that object.
let dogName = specificDog .name
let dogGender = specificDog .gender
let dogSpeed = specificDog .speed

您的用例似乎在正确的轨道上。阵列将非常有用,并提供最大的灵活性,以便以后添加更多的狗。这可以很容易地处理,例如,通过这样做。你可以在这里了解更多。在Swift中将元素添加到数组中

var yourDogArray = [Dogs]()
yourDogArray.append(Dog(name: "xxx", gender: "female", speed: 20))

这是一种常见的用法,它之所以有效,是因为您填充的列表填充在从0长度的索引上,这意味着如果您选择列表中的第一项,它将与您在arrayCollection.

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath {
    let name = yourDogArray[indexPath.row].name
    let gender = yourDogArray[indexPath.row].gender
    let speed = yourDogArray[indexPath.row].speed

    //Do whatever else you need to do here with your data. In your case you'd
    //probably segue to the details view controller and present this data.
    //Read up on Segue and Prepare for Segue to pass data between controllers.
}

 类似资料:
  • 问题内容: 如何在Python中获取字典中的值列表? 在Java中,将Map的值作为列表获取就像在操作中一样容易。我想知道Python中是否有类似的简单方法可以从字典中获取值列表。 问题答案: 是的,这与Python 2 完全相同: 在Python 3中 (在其中返回字典值的 视图 ):

  • 问题内容: 我有一本Swift字典。我想获得钥匙的价值。密钥方法的对象对我不起作用。如何获得字典键的值? 这是我的字典: 问题答案: 使用下标访问字典键的值。这将返回一个可选: 要么 您还可以枚举所有键和值: 或枚举所有值:

  • 我有以下代码: LR是类的列表类型。在这个列表中,我有15个索引,例如在索引[0]中,我有: 现在在这个索引[0]中,我有两个int的变量end 88和start 96 在这个for循环中,我需要做的是: _fts是一个<代码>列表 我有两个错误: 错误31“系统”的最佳重载方法匹配。集合。通用。列表。添加(int)”有一些无效参数 和 错误32参数1:无法从“Lightings\u提取器”转换。

  • 我必须从文件中获取一个数字,有些文件包含字母和数字。比如(dsh8kuebw9)或者有(8)这样的空格,我怎样才能得到这些数字?我试过很多次了。我有一个方法可以找到一个数字出现在一个数字中的方法是count8方法。 parseInt将文件的行转换为整数,但由于在某些文件中有字母,我的方法遇到了问题,因为它只接受整数而不接受字符串

  • 我做了一个ping实验,结果是: 我需要的是收到的数据包数,丢包数,min,avg和max。 我试图使用