在大多数编程语言中,可以使用内置的排序函数或方法来对列表进行排序。以下是一个示例代码,展示如何按照姓氏和名字对列表进行排序:
Python:
names = ["张三", "李四", "王五", "赵六"]
sorted_names = sorted(names, key=lambda x: (x.split()[1], x.split()[0]))
print(sorted_names)
Java:
import java.util.Arrays;
import java.util.Comparator;
public class Main {
public static void main(String[] args) {
String[] names = {"张三", "李四", "王五", "赵六"};
Arrays.sort(names, Comparator.comparing((String name) -> name.split(" ")[1])
.thenComparing((String name) -> name.split(" ")[0]));
System.out.println(Arrays.toString(names));
}
}
C++:
#include
#include
#include
bool compareNames(const std::string& name1, const std::string& name2) {
std::string firstName1 = name1.substr(name1.find(" ")+1);
std::string firstName2 = name2.substr(name2.find(" ")+1);
if (firstName1 != firstName2) {
return firstName1 < firstName2;
} else {
std::string lastName1 = name1.substr(0, name1.find(" "));
std::string lastName2 = name2.substr(0, name2.find(" "));
return lastName1 < lastName2;
}
}
int main() {
std::vector names = {"张三", "李四", "王五", "赵六"};
std::sort(names.begin(), names.end(), compareNames);
for (const std::string& name : names) {
std::cout << name << std::endl;
}
return 0;
}
以上示例代码中,我们使用了lambda表达式(Python和Java)或自定义比较函数(C++)来指定排序的规则。首先,我们通过空格来分割名字和姓氏,然后按照姓氏和名字的顺序进行排序。最后,打印出排序后的列表。
下一篇:按姓氏升序选择所有员工