【问题标题】:how to sort in a for loop (swift) [duplicate]如何在 for 循环中排序(swift)[重复]
【发布时间】:2021-03-08 12:20:27
【问题描述】:
let vehicles = ["unicycle" : 1, "bicycle":2, "tricycle":3, "quad bike": 4]
for (vehicleName, wheelCount) in vehicles {

    print (" \(vehicleName) has \(wheelCount) wheels")
      
}`

打印输出结果为:

四轮车有 4 个轮子 独轮车有 1 个轮子 三轮车有 3 个轮子 自行车有两个轮子

我怎样才能根据轮子的数量对它们进行排序,所以打印输出可以是这样的:

独轮车有 1 个轮子 自行车有 2 个轮子 三轮车有3个轮子 四轮摩托车有 4 个轮子

【问题讨论】:

    标签: swift


    【解决方案1】:

    你可以使用sorted

    let vehicles = ["unicycle" : 1, "bicycle": 2, "tricycle": 3, "quad bike": 4]
    let sortedVehicles = vehicles.sorted { $0.value < $1.value }
    for (vehicleName, wheelCount) in sortedVehicles {
        print ("\(vehicleName) has \(wheelCount) wheels")
    }
    

    输出:

    unicycle has 1 wheels
    bicycle has 2 wheels
    tricycle has 3 wheels
    quad bike has 4 wheels
    

    【讨论】:

      【解决方案2】:
      let vehicles = ["unicycle" : 1, "bicycle":2, "quad bike": 4, "tricycle":3]
      let sortedVehicles = vehicles.sorted { $0.1 < $1.1 }
      print(sortedVehicles) //Prints [(key: "unicycle", value: 1), (key: "bicycle", value: 2), (key: "tricycle", value: 3), (key: "quad bike", value: 4)]
      sortedVehicles.forEach {
          print("\($0.key) has \($0.value) wheels")
      }
      

      结果:

      unicycle has 1 wheels
      bicycle has 2 wheels
      tricycle has 3 wheels
      quad bike has 4 wheels
      

      【讨论】:

        【解决方案3】:
        let vehicles = ["unicycle" : 1, "bicycle" : 2, "tricycle" : 3, "quadbike" : 4].sorted {
            return $0.value > $1.value
        }
        for (vehicieName, wheelCount) in vehicles {
            print("\(vehicieName) has \(wheelCount) wheels")
        }
        

        【讨论】:

        • 谢谢,虽然是倒序排列,但这个也有帮助。
        • 我错了,很高兴和你讨论这个问题
        猜你喜欢
        • 2023-03-18
        • 1970-01-01
        • 2022-01-07
        • 2019-01-06
        • 2017-03-30
        • 2015-10-21
        • 2020-10-18
        • 1970-01-01
        相关资源
        最近更新 更多