# R
d <- c('5-10', '20+', '15-20', '10-15', '0-5')
sort(d)
[1] "0-5" "10-15" "15-20" "20+" "5-10"
# Python
d = ['0-5', '10-15', '15-20', '20+', '5-10']
sorted(d)
>>> ['0-5', '10-15', '15-20', '20+', '5-10']
此外,当然,我希望找到一个解决方案来正确地对这个数组进行排序,我的问题是:为什么要这样做?
发布于 2021-03-11 23:33:47
在R try中
stringr::str_sort(d, numeric = TRUE)
[1] "0-5" "5-10" "10-15" "15-20" "20+"
发布于 2021-03-11 23:33:58
正如我在评论中提到的,字符串排序使用字母排序规则。如果你想把它们当作数字来处理,你可以在sorted
的key
参数中添加一些逻辑来对它们进行一些清理,并将它们作为数字进行排序:
In [34]: sorted(d, key=lambda x: int(x.split('-')[0].replace('+', '')))
Out[34]: ['0-5', '5-10', '10-15', '15-20', '20+']
https://stackoverflow.com/questions/66585527
复制相似问题