1
let vehicles = ["unicycle" : 1, "bicycle":2, "tricycle":3, "quad bike": 4]
for (vehicleName, wheelCount) in vehicles {

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

The printout result is:

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

How can I sort them according to their number of wheels, so the printout can be like:

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

Shamas S
  • 7,507
  • 10
  • 46
  • 58
Richard
  • 13
  • 2

3 Answers3

0

You could use 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")
}

Output:

unicycle has 1 wheels
bicycle has 2 wheels
tricycle has 3 wheels
quad bike has 4 wheels
Sash Sinha
  • 18,743
  • 3
  • 23
  • 40
0
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")
}

Result:

unicycle has 1 wheels
bicycle has 2 wheels
tricycle has 3 wheels
quad bike has 4 wheels
Deepa Bhat
  • 174
  • 1
  • 10
0
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")
}

enter image description here

Geek__Lee
  • 247
  • 1
  • 7