是否有一些perl"魔法"迭代通过值排序的哈希值,但在迭代中获取密钥?
按X排序,让X变得简单(键,值) - 以及按键排序并获取值。
谢谢!
答案 0 :(得分:5)
my %hash = ( one => 'a', two => 'b', three => 'c', four => 'd' );
for my $k ( sort { $hash{$a} cmp $hash{$b} } keys %hash ) {
print "$k: $hash{$k}\n";
}
__END__
one: a
two: b
three: c
four: d
答案 1 :(得分:3)
请记住将来提供您的数据的示例,所需的结果以及您编写的代码及其错误的说明。
目前你的问题很模糊,我不得不作出一些可能错误或可能不错的假设
它不是神奇的&#34 ;;你只需编写适当的>>> r = requests.post(url, data=json.dumps(params), headers=headers)
>>> print(r.text)
{
"args": {},
"data": "{\"username\": \"foo\", \"password\": \"b@r\"}",
"files": {},
"form": {},
"headers": {
"Accept": "application/json",
"Accept-Encoding": "gzip, deflate",
"Connection": "close",
"Content-Length": "38",
"Content-Type": "application/json",
"Host": "httpbin.org",
"User-Agent": "python-requests/2.12.4"
},
"json": {
"password": "b@r",
"username": "foo"
},
"origin": "xxx.xxx.xxx.xxx",
"url": "http://httpbin.org/post"
}
块
这将按照相应值的升序词汇顺序对sort
的键进行排序
%hash
您也可以像这样使用my @sorted_keys = sort { $hash{$a} cmp $hash{$b} } keys %hash;
。它可能比简单的List::UtilsBy
技术快得多,具体取决于您的数据
sort