argmax 是否适用于字符串数组?
Is argmax working properly for an array of Strings?
我正在使用函数 Argmax 获取字符串数组中最大大小的字符串,当字符串包含单个字符的重复时,结果会变得很奇怪。
例如:
x = ["ABC", "AAAA"]
argmax(x) # 1
# The return of argmax is 1, is that correct ?
x = ["ABC", "AAAABBBBCCCCDDDD"]
argmax(x) # = 1
x = ["ABC", "AAAABBBBCCCCDDDD", "ABCD"]
argmax(x) # = 3
这里的字符串是按字典顺序比较的,而不是按长度。
因此 "ABC" 被认为大于 "AAAA",因此数组 ["ABC", "AAAA"]
中的最大元素确实位于索引 1。
如果您的目标是按长度比较字符串,您可以将 length
函数应用于数组中的每个字符串,然后使用 argmax
。例如:
julia> x = ["ABC", "AAAABBBBCCCCDDDD", "ABCD"]
julia> argmax(length.(x))
2
我正在使用函数 Argmax 获取字符串数组中最大大小的字符串,当字符串包含单个字符的重复时,结果会变得很奇怪。
例如:
x = ["ABC", "AAAA"]
argmax(x) # 1
# The return of argmax is 1, is that correct ?
x = ["ABC", "AAAABBBBCCCCDDDD"]
argmax(x) # = 1
x = ["ABC", "AAAABBBBCCCCDDDD", "ABCD"]
argmax(x) # = 3
这里的字符串是按字典顺序比较的,而不是按长度。
因此 "ABC" 被认为大于 "AAAA",因此数组 ["ABC", "AAAA"]
中的最大元素确实位于索引 1。
如果您的目标是按长度比较字符串,您可以将 length
函数应用于数组中的每个字符串,然后使用 argmax
。例如:
julia> x = ["ABC", "AAAABBBBCCCCDDDD", "ABCD"]
julia> argmax(length.(x))
2