我是 perl 的新手,在大多数使用散列的地方都给出了对 python 字典的引用。我注意到的一个区别是散列不保留元素的顺序。我想知道两者之间是否有一些更具体和根本的区别。
最佳答案
最根本的区别在于,如果您访问不存在的元素,perl 哈希不会抛出错误。
$ python -c 'd = {}; print("Truthy" if d["a"] else "Falsy")'
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'a'
$ perl -we 'use strict; my $d = {}; print $d->{"a"} ? "Truthy\n": "Falsy\n"'
Falsy
$
Perl 散列自动创建元素太不像 python
$ python -c 'd = dict(); d["a"]["b"]["c"]=1'
Traceback (most recent call last):
File "<string>", line 1, in <module>
KeyError: 'a'
$ perl -we 'use strict; my $d = {}; $d->{a}{b}{c}=1'
$
如果您要将 perl
转换为 python
,那么这些是让您脱颖而出的主要因素。
关于python - perl 的哈希和 python 的字典之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10676441/