1. 首页
  2. Python

用list索引到Python dict中以获取列表,如Perl哈希

“u003Cdivu003Eu003Cpu003EPerl有一个构造(如Joe Z所指的那样称为“哈希切片”),用于索引具有列表的哈希以获取列表,例如:u003Cu002Fpu003Eu003Cpreu003E%bleah = (1 => ‘a’, 2 => ‘b’, 3 => ‘c’);u003Cbru003Eprint join(‘ ‘, @bleah{1, 3}), “\n”;u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E执行给出:u003Cu002Fpu003Eu003Cpreu003Ea cu003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E我知道在Python中解决此问题的最简单,最易读的方式是列表理解:u003Cu002Fpu003Eu003Cpreu003E>>> bleah = {1: ‘a’, 2: ‘b’, 3: ‘c’}u003Cbru003E>>> print ‘ ‘.join([bleah[n] for n in [1, 3]])u003Cbru003Ea cu003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E因为:u003Cu002Fpu003Eu003Cpreu003E>>> bleah[[1, 2]]u003Cbru003ETraceback (most recent call last):u003Cbru003E File “<stdin>”, line 1, in <module>u003Cbru003ETypeError: unhashable type: ‘list’u003Cbru003Eu003Cu002Fpreu003Eu003Cpu003E还有其他更好的方法吗?也许在Python3中,我还没有做很多事情?如果不是,是否有人知道是否已经为此提交了PEP?我的Google Fu无法找到一个。u003Cu002Fpu003Eu003Cpu003E“不是Pythonic”:是的,我知道,但是我希望它是这样。它u003Cemu003E是u003Cu002Femu003E简洁和可读性,因为它永远不会是Python的索引到与unhashable类型的字典,其在指数中的异常处理程序迭代为你而不是barfing不会打破目前大多数代码。u003Cu002Fpu003Eu003Cpu003E注意:正如评论中指出的那样,可以将该测试用例重写为列表,从而完全避免使用dict,但是我正在寻找一种通用的解决方案。u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp3.pstatp.comu002Flargeu002Fdfic-imagehandleru002F5b559c53-b94e-46d3-9cee-a3d8b934f3ee” img_width=”1023″ img_height=”714″ alt=”用list索引到Python dict中以获取列表,如Perl哈希” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Ch1u003E解决方案u003Cu002Fh1u003Eu003Cpu003E目前,我在注释和覆盖中采用了Hyperboreus的建议__getitem__,但我仍然认为将其作为默认dict行为是有意义的:u003Cu002Fpu003Eu003Cdiv class=”pgc-img”u003Eu003Cimg src=”http:u002Fu002Fp9.pstatp.comu002Flargeu002Fpgc-imageu002Fd92f02eb40764445b9c65faba78faae6″ img_width=”532″ img_height=”450″ alt=”用list索引到Python dict中以获取列表,如Perl哈希” inline=”0″u003Eu003Cp class=”pgc-img-caption”u003Eu003Cu002Fpu003Eu003Cu002Fdivu003Eu003Cpu003E(根据tobyink的上述评论进行了修改以添加左值功能-jc 2013-12-12)u003Cu002Fpu003Eu003Cpu003Eu003Cstrongu003E最后多说一句,小编是一名python开发工程师,这里有我自己整理了一套最新的python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。想要这些资料的可以关注小编,并在后台私信小编:“01”即可领取。u003Cu002Fstrongu003Eu003Cu002Fpu003Eu003Cu002Fdivu003E”

原文始发于:用list索引到Python dict中以获取列表,如Perl哈希

主题测试文章,只做测试使用。发布者:~那﹑男人是我的命﹪,转转请注明出处:http://www.cxybcw.com/13108.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code