如何在swift上打印字典中的字符串?

如何在swift上打印字典中的字符串?,swift,string,dictionary,character,Swift,String,Dictionary,Character,如何打印此词典中最大数字的类型 let interestingNumbers = [ "Prime": [2, 3, 5, 7, 11, 13], "Fibonacci": [1, 1, 2, 3, 5, 8], "Square": [1, 4, 9, 16, 25], ] var largest = 0 var typeoflargest:String = " " for (kind, numbers) in interestingNumbers { for t

如何打印此词典中最大数字的类型

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]
var largest = 0
var typeoflargest:String = " "
for (kind, numbers) in interestingNumbers {
    for type in kind.characters {
        for number in numbers {
            if number > largest {
                largest = number
                typeoflargest = String(type)
            }
        }
    }
}
print(largest)
print(typeoflargest)
输出:

25
S

为什么我只得到第一个字符“S”而不是“Square”?

没有理由迭代
类型的
字符串的字符。只需执行以下操作:

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]
var largest = 0
var typeoflargest:String = ""
for (kind, numbers) in interestingNumbers {
    for number in numbers {
        if number > largest {
            largest = number
            typeoflargest = kind
        }
    }
}
print(largest)
print(typeoflargest)
输出:

25
方格

备选办法:

let interestingNumbers = [
    "Prime": [2, 3, 5, 7, 11, 13],
    "Fibonacci": [1, 1, 2, 3, 5, 8],
    "Square": [1, 4, 9, 16, 25],
]

let maximum = interestingNumbers
    .map{ type, numbers in return (type: type, number: numbers.max()!) }
    .max(by: { $0.number < $1.number })!

print(maximum.type, maximum.number)
然后,通过比较它们的数量,得到最大类型/数量对,得出结果:

(type: "Square", number: 25) // 25 is the max of 25, 13, 8

为什么投票被否决?这是一个明确的问题。它显示了相关的代码。它显示实际和期望的输出。你们的选民还想要什么?@rmaddy我还在调整它,等我有了更最终的答案我会的
(type: "Square", number: 25) // 25 is the max of 25, 13, 8