相关疑难解决方法(0)

按Swift中的值排序字典

是否有模拟 - (NSArray*)keysSortedByValueUsingSelector:(SEL)比较器在swift中?

如何在不转换为NSDictionary的情况下执行此操作?

我试过这个,但似乎不是一个好的解决方案.

var values = Array(dict.values)
values.sort({
    $0 > $1
    })

for number in values {
    for (key, value) in dict {
        if value == number {
            println(key + " : \(value)");
            dict.removeValueForKey(key);
            break
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

例:

var dict = ["cola" : 10, "fanta" : 12, "sprite" : 8]
dict.sortedKeysByValues(>) // fanta (12), cola(10), sprite(8)
Run Code Online (Sandbox Code Playgroud)

swift

26
推荐指数
11
解决办法
5万
查看次数

Swift:有人可以为我解释这个语法`numbers.sort {$ 0> $ 1}`吗?

首先,这个问题不是"0美元的意思".我在swift文档中了解到$ 0就像索引一样.

我的问题是"如何numbers.sort { $0 > $1 }用于实现排序功能".我numbers.sort { $0 > $1 }在其他一些网站上搜索过这种语法,比如这个.它显然不是当前的版本.所以我还是无法理解它的含义.

print(numbers) //[20, 19, 1, 12]
let sortedNumbers = numbers.sort { $0 > $1 }
print(sortedNumbers) //[20, 19, 12, 1]
Run Code Online (Sandbox Code Playgroud)

有人可以为我解释上面这段简单的代码吗?就像这个简单的代码如何$0 > $1实现sort函数一样,将数字从大到小排序.

我知道一些关于索引,这个$ 0看起来像索引,但它只有$ 0$ 1两个索引.那怎么能用到4个数字呢?根据我之前在C++中的知识,我无法理解其中的原理.

请尽可能具体说明您的答案.谢谢!

-----------------以下是编辑的额外部分-------------------

我不知道stackoverflow是否允许我像这样编辑我的问题,但是这个额外的部分太长了,所以我不能在评论中添加它.@pbodsk @Paul Richter

所以swift中的sort()语法使用快速排序来处理排序函数?

其实我的问题更多的是关于"什么是工作原理sort{$0 > $1}".我知道你的意思,我认为这与swift 2.1文件所说的相似,但你的回答并不是我真正想知道的.对不起,我的英文表达不是很好.让我尝试另一种方式.

当我之前学习C++时,总会有一些文档来解释函数的操作原理是什么,或者这个函数(如此处的sort()如何)在后台运行.Sort()这里需要比较第一次和第二次交换.在C++中,它就像

if numbers[1] < numbers[2]{ //just consider …
Run Code Online (Sandbox Code Playgroud)

swift

5
推荐指数
1
解决办法
4403
查看次数

字典打印键和Swift 4中的值

您好我在Xcode9尝试了打印字典项目.像这样:

var items = ["Bear":"0", "Glass":"1", "Car":"2"]

for (key,value) in items{

print("\(key) : \(value)")

}
Run Code Online (Sandbox Code Playgroud)

输出:

Glass : 1
Bear : 0
Car : 2
Run Code Online (Sandbox Code Playgroud)

为什么输出不是这样的:熊:0,玻璃:1,汽车:2我不明白这个输出的原因.

dictionary swift

3
推荐指数
1
解决办法
7934
查看次数

Swift中的字典键如何排序?

检查以下字典:

var testDict: [String : Int] = [
    "a" : 1,
    "b" : 2,
    "c" : 3,
    "d" : 4
]
Run Code Online (Sandbox Code Playgroud)

现在,遍历字典的键:

for i in testDict.keys {
    print(i)
}
Run Code Online (Sandbox Code Playgroud)

这将产生以下输出:

百特

但是,预期的输出将是编码顺序中的键:

A B C D

因为不是这种情况,所以我假设键已排序。如果是这样,如何对它们进行排序,更重要的是,如何将它们返回到编写时的顺序?

sorting dictionary swift

1
推荐指数
1
解决办法
1338
查看次数

标签 统计

swift ×4

dictionary ×2

sorting ×1