在本文中,您将会了解到关于Python:不按字典顺序对字符串编号进行排序的新资讯,同时我们还将为您解释python字典按字母排序的相关在本文中,我们将带你探索Python:不按字典顺序对字符串编号进行
在本文中,您将会了解到关于Python:不按字典顺序对字符串编号进行排序的新资讯,同时我们还将为您解释python字典按字母排序的相关在本文中,我们将带你探索Python:不按字典顺序对字符串编号进行排序的奥秘,分析python字典按字母排序的特点,并给出一些关于angularjs – 如何使用角度orderBy过滤器按字母顺序对字符串数组进行排序?、c++ - 如何比较c ++中的字符串以便按字典顺序对它们进行排序?、java – 如何按字典顺序对ArrayList进行排序?、java – 如何按字典顺序对二维数组进行排序?的实用技巧。
本文目录一览:- Python:不按字典顺序对字符串编号进行排序(python字典按字母排序)
- angularjs – 如何使用角度orderBy过滤器按字母顺序对字符串数组进行排序?
- c++ - 如何比较c ++中的字符串以便按字典顺序对它们进行排序?
- java – 如何按字典顺序对ArrayList进行排序?
- java – 如何按字典顺序对二维数组进行排序?
Python:不按字典顺序对字符串编号进行排序(python字典按字母排序)
我有一个字符串数组,例如:
numbers = ['10','8','918','101010']
使用时sorted(numbers)
,我按字典顺序对它们进行了排序,例如'8' > '17'
。
如何遍历根据数字值排序的字符串?
angularjs – 如何使用角度orderBy过滤器按字母顺序对字符串数组进行排序?
$scope.model = { name: "foo",countriesVisited: ["CA","AR","GB","FR","MX","AU","IE","RU","IT","ES","IN","US","NL","DE","CL","BR","JP","NZ","PL"] }
使用ng-repeat指令按照显示的顺序列出它们.
设置orderBy过滤器会对商品进行排序,但订单看似随机.见这plunker
取下过滤器并观察输出偏移.将其粘贴回来,这是一个奇怪的顺序.
有没有办法让countriesVisited数组在不将其移动到自己的$scope变量的情况下进行排序?
<li ng-repeat="country in model.countriesVisited | orderBy:'toString()'">
c++ - 如何比较c ++中的字符串以便按字典顺序对它们进行排序?
你可能会
auto compare_string = [](const auto& lhss,const auto& rhss){
return std::lexicographical_compare(
lhss.begin(),lhss.end(),rhss.begin(),rhss.end(),[](const auto& lhsc,const auto& rhsc){
auto proj = [](char c){ return std::tuple(std::tolower(c),std::isupper(c)); };
return proj(lhsc) < proj(rhsc);
}
);
});
Demo
,您想要的字符串排序方式不是 std::string 默认实现的方式。但是,您可以传入 std::char_traits 模板参数并自定义排序。
https://en.cppreference.com/w/cpp/string/char_traits
这里有一个关于不区分大小写字符串的实现的相当古老但仍然有趣的讨论:http://www.gotw.ca/gotw/029.htm
#include <string>
#include <string_view>
#include <iostream>
#include <cctype>
#include <cassert>
struct special_char_traits : public std::char_traits<char> {
static char to_upper(char ch) {
return std::toupper((unsigned char) ch);
}
static bool eq(char c1,char c2) {
return c1 == c2;
}
static bool lt(char c1,char c2) {
if (c1 == c2)
return false;
if (to_upper(c1) == to_upper(c2))
return !(c1 < c2);
return c1 < c2;
}
static int compare(const char* s1,const char* s2,std::size_t n) {
while ( n-- != 0 ) {
if ( lt(*s1,*s2)) return -1;
if ( !lt(*s1,*s2)) return 1;
++s1; ++s2;
}
return 0;
}
static const char* find(const char* s,std::size_t n,char a) {
while ( n-- != 0 )
{
if (*s == a)
return s;
s++;
}
return nullptr;
}
};
int main()
{
typedef std::basic_string<char,special_char_traits> ss;
//handle the case highligheted by Jarod42
assert(!special_char_traits::lt('a','a'));
assert(!special_char_traits::lt('A','A'));
assert(special_char_traits::lt('a','A'));
assert(!special_char_traits::lt('A','a'));
assert(!special_char_traits::lt('b','A'));
assert(special_char_traits::lt('A','b'));
std::cout << (std::string("AA") < std::string("aa")) << " " << (ss("AA") < ss("aa")) << std::endl;
}
仍有几种情况未经测试
比较函数将单个字符的比较委托给上面提供的 lt 函数。
,std::string a = "A";
std::string b = "B";
if(a < b)
// Do what you want.
std::string
重载了 <
运算符,这就是您对它们进行排序所需的一切。
另见:Using the less than comparison operator for strings
,只需创建一个接受两个字符串作为输入的函数。在函数上创建 STL 集。插入两个字符串。它们现在在集合内按字典顺序排序。
java – 如何按字典顺序对ArrayList进行排序?
编辑:对不起,当我查看排序时,我一定不会太注意.排序正常,我必须被一个10来到2之前的事实所抛弃.谢谢
解决方法
String.compareTo
的行为.“7”将出现在“King”之前,“10”将出现在“2”之前.
java – 如何按字典顺序对二维数组进行排序?
int[][] source = { { 3,5,6,1},{ 3,3,-6},{ -1,-3,-5,{ 124,43,55,-66} };
我们如何按字典顺序对多维数组源进行排序?
所以,结果,我希望它是:
[ [ -1,-6],[ 3,1],[124,-66] ]
这个网站上的很多问题似乎只建议按每个数组的第一个元素或第二个,第三个等进行排序,但不考虑整个数组.
解决方法
Arrays.compare
的新方法,它允许您按字典顺序比较两个给定的数组.
文档中对Arrays.compare
的简短描述:
If the two arrays share a common prefix then the lexicographic
comparison is the result of comparing two elements,as if by
Integer.compare(int,int),at an index within the respective arrays
that is the prefix length. Otherwise,one array is a proper prefix of
the other and,lexicographic comparison is the result of comparing the
two array lengths.
鉴于您想要修改源数组,那么使用Arrays.sort应该足够了:
Arrays.sort(source,Arrays::compare);
鉴于你想要一个新的数组作为结果,那么我将采用流方式:
int[][] sorted = Arrays.stream(source) .sorted(Arrays::compare) .toArray(int[][]::new);
今天的关于Python:不按字典顺序对字符串编号进行排序和python字典按字母排序的分享已经结束,谢谢您的关注,如果想了解更多关于angularjs – 如何使用角度orderBy过滤器按字母顺序对字符串数组进行排序?、c++ - 如何比较c ++中的字符串以便按字典顺序对它们进行排序?、java – 如何按字典顺序对ArrayList进行排序?、java – 如何按字典顺序对二维数组进行排序?的相关知识,请在本站进行查询。
本文标签: