- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试找出如何在 Perl 中按字母顺序对数组进行排序。这是我所拥有的用英语工作得很好的东西:
# List of countries (kept like this to keep clean, as its re-used in other places)
my $countries = {
'AT' => "íAustria",
'AU' => "Australia",
'BE' => "Belgium",
'BG' => "Bulgaria",
'CA' => "Canada",
'CY' => "Cyprus",
'CZ' => "Czech Republic",
'DK' => "Denmark",
'EN' => "England",
'EE' => "Estonia",
'FI' => "Finland",
'FR' => "France",
'DE' => "Germany",
'GB' => "Great Britain",
'GR' => "Greece",
'HU' => "Hungary",
'IE' => "Ireland",
'IT' => "Italy",
'LV' => "Latvia",
'LT' => "Lithuania",
'LU' => "Luxembourg",
'MT' => "Malta",
'NZ' => "New Zealand",
'NL' => "Netherlands",
'PL' => "Poland",
'PT' => "Portugal",
'RO' => "Romania",
'SK' => "Slovakia",
'SI' => "Slovenia",
'ES' => "Spain",
'SE' => "Sweden",
'CH' => "Switzerland",
'SC' => "Scotland",
'UK' => "United Kingdom",
'US' => "USA",
'TK' => "Turkey",
'NO' => "Norway",
'MX' => "Mexico",
'IL' => "Israel",
'IN' => "India",
'IS' => "Iceland",
'CN' => "China",
'JP' => "Japan",
'VN' => "áVietnamí"
};
# Populate the original loop with "name" and "code"
my @country_loop_orig;
print $IN->header;
foreach (keys %{$countries}) {
push @country_loop_orig, {
name => $countries->{$lang}->{$_},
code => $_
}
}
# sort it alphabetically
my @country_loop = sort { lc($a->{name}) cmp lc($b->{name}) } @country_loop_orig;
这适用于英文版本:
Australia
Austria
Belgium
Bulgaria
Canada
China
Cyprus
Czech Republic
Denmark
England
Estonia
Finland
France
Germany
Great Britain
Greece
Hungary
Iceland
India
Ireland
Israel
Italy
Japan
Latvia
Lithuania
Luxembourg
Malta
Mexico
Netherlands
New Zealand
Norway
Poland
Portugal
Romania
Scotland
Slovakia
Slovenia
Spain
Sweden
Switzerland
Turkey
United Kingdom
USA
Vietnam
...但是当您尝试使用 íéó 等 utf8 来执行此操作时,它不起作用:
Australia
Belgium
Bulgaria
Canada
China
Cyprus
Czech Republic
Denmark
England
Estonia
Finland
France
Germany
Great Britain
Greece
Hungary
Iceland
India
Ireland
Israel
Italy
Japan
Latvia
Lithuania
Luxembourg
Malta
Mexico
Netherlands
New Zealand
Norway
Poland
Portugal
Romania
Scotland
Slovakia
Slovenia
Spain
Sweden
Switzerland
Turkey
United Kingdom
USA
áVietnam
íAustria
你是如何做到这一点的?我找到了 Sort::Naturally::XS
,但无法正常工作。
最佳答案
Unicode::Collate应该对此有所帮助。
对最后一个列表进行排序的简单示例
use warnings;
use strict;
use feature 'say';
use Unicode::Collate;
use open ":std", ":encoding(UTF-8)";
open my $fh, '<', "country_list.txt";
my @list = <$fh>;
chomp @list;
my $uc = Unicode::Collate->new();
my @sorted = $uc->sort(@list);
say for @sorted;
但是,在某些语言中,非 ascii 字符可能有一个非常特殊的接受位置,并且该问题没有提供任何详细信息。那么也许Unicode::Collate::Locale可以提供帮助。
参见(研究)this perl.com article和 this post (T. Christiansen)和 this Effective Perler article .
如果待排序的数据是复杂的数据结构,cmp
方法用于单独比较
my @sorted = map { $uc->cmp($a, $b) } @list;
对于 $a
和 $b
,您将从复杂的数据结构中提取需要比较的内容。
关于perl - 在 Perl 中使用 "sort"作为 utf8 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46617113/
我在玩一些代码挑战时发现自定义排序(排序接口(interface)的实现)比仅针对 slice 的原始结构要快得多。这是为什么?将 slice 转换为类型是否会产生一些魔力(例如转换为指向结构的指针
我正在使用 simple-import-sort eslint 插件进行 react 。我想我的 .eslintrc.js是对的,但我无法使这个特定的插件工作。我在文件的第一行收到以下错误: 未找到规
Closed. This question is not reproducible or was caused by typos。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-to
好的,所以我是 Go 的新手,我正在努力让自己熟悉按函数排序。我可能误解了什么,所以如果我错了请纠正我。 我正在尝试创建一个包含字段 key 和 value 的 Nodes 数组。我想创建一个自定义排
我想从惰性列表中取出 n 个最大的元素。 我听说在 Data.List.sort 中实现的合并排序是惰性的,它不会产生不必要的元素。就比较而言,这可能是正确的,但在内存使用方面肯定不是这样。下面的程序
这个问题已经有答案了: Javascript sort function. Sort by First then by Second (10 个回答) 已关闭 3 年前。 我正在尝试返回已排序产品的列
我有一个 vector 对,如下所示。第一对值未排序,第二对值已排序(从零开始)。我可能想通过实现 std::vector 和 std::pair 来存储数据。当我有第一对值(未排序)时,找到相应的第
直到现在(Swift 2.2)我一直愉快地使用来自 this answer 的代码- 它迅速,优雅,它像梦一样工作。 extension MutableCollectionType where Ind
我在我的 Go 应用程序中实现排序界面时遇到问题。这是相关代码: type Group struct { Teams []*Team } type Team struct { Point
我很好奇 Lua 的默认算法是什么 table.sort使用,只是因为它比我遇到的其他一些排序算法慢。我也很好奇 Lua 的 table.sort是在引擎中用 C 编写的,或者如果它在 Lua 中的库
例如,插入排序被描述为部分排序数组的有效算法。但如何精确定义“部分排序”呢? 最佳答案 这是一个只有少数元素不合适的数组。如果没有指定百分比或其他阈值,则部分排序和未排序之间没有严格的区别。 正式定义
我是 GPU 编程的新手。最近,我正在尝试根据一个教程实现gpu bvh构建算法:http://devblogs.nvidia.com/parallelforall/thinking-parallel
有人可以指导我 Gnumeric 排序函数的详细说明(链接)吗? Gnumeric 手册很简短并且没有示例。我无法通过搜索引擎找到任何合适的信息,甚至 Stackoverflow 上也只有六个不合适的
在 Python 中使用什么精确规则来对列表进行排序,其中元素是列表?这可以表示为“key”或“cmp”吗功能?问题来自于有两件事考虑:长度和它们位置的值。 sorted([ [ 0, 1, 2
下面的代码应该创建一个整数数组 (a) 并对它进行排序,但是 sort.Sort 似乎没有修改变量。 package main import ( "fmt" "sort" ) type
我有一个应用于结构的自定义排序函数。完整代码是 here on play.golang.org . type Stmt struct { Name string After []st
python3 sorted取消了对cmp的支持。 python3 帮助文档: ?
以下是来自普林斯顿的 coursera 算法类(class)的练习。 如果一个数组既是 3 次排序又是 5 次排序,那么它是否也是 6 次、7 次、8 次、9 次和 10 次排序?我知道任何序列如果先
当我看到上面的语句时,我正在阅读 shell-sorting。这意味着什么?它对我看待 shell 排序的方式有何不同? PS:我不是在寻找声明的证据。 最佳答案 好吧,你可能暗示下一个排序阶段不会“
今天在检查mysql服务器的时候提示Sort aborted: Out of sort memory, consider increasing server sort buffer size,安装字
我是一名优秀的程序员,十分优秀!