python - perl 的哈希和 python 的字典之间的区别

标签 python perl

我是 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/

相关文章:

perl - 从模块导出 perl 函数的错误方法

perl - 使用 Perl 匹配模式的 SCP 文件

perl - 为什么 Perl 的 "system (' 某些命令')"与 c :\> some command? 的行为不同

perl - 如何使用 Perl 检测 XSS Reflect

Python + 科莫多编辑

python - 仅当未出现参数时,才使用默认值进行 Argparse 追加操作

python - 在同一列标题下拉出下一个值

linux - 如何退出 perl 脚本中的 chroot?

python - Print 语句创建不需要的换行符

python - 'dive into python' 之后是什么