有没有一种方法可以在单个print语句中打印两个/多个变量而无需将它们放入字符串中?

时间:2019-06-22 00:10:51

标签: swift xcode

我的主要目标是对字典进行排序:例如[2:4,1:2,2,4:8,3:6]按其键从1到4。就像[1:2,2:4,4,3:6,4:8]

我可以将对打印为数组中的项,但是它们是字符串,因此当键进入两位数时,它们将不会按升序排序。这就是为什么我觉得如果我可以在同一个语句中将它们都打印而不将它们放在字符串中会起作用。但是,如果有一种更简单的方法,我也会考虑的。

var dict=[2: 4, 1: 2, 4: 8, 3: 6]

var array=[String]()

for (key, value) in dict
{
     array.append("\(key):\(value)")
}
array.sort()

print(array)

输出为:

  

[“ 1:2”,“ 2:4”,“ 3:6”,“ 4:8”]

这适用于此功能,但是一旦按键变成两位数,它就会开始说10早于2。

1 个答案:

答案 0 :(得分:0)

我得到 ["1:2", "2:4", "3:6", "4:8"] ,而不是 [1:2, 2:4, 3:6, 4:8]

因此,如果这正是您想要的,则无需在排序之前将键值对转换为String。

var dict=[2: 4, 1: 2, 4: 8, 3: 6]

let array = dict.sorted{$0.key < $1.key}.map{"\($0.key):\($0.value)"}

print(array)

如果您想要其他东西,请阐明您想要的东西。