加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl等同于(Python-)列表的理解

发布时间:2020-12-15 21:30:37 所属栏目:大数据 来源:网络整理
导读:我正在寻找在Perl中表达 Python代码片段的方法: data = {"A": None,"B": "yes","C": None}key_list = [k for k in data if data[k]] # in this case the same as filter(lambda k: data[k],data) but let's ignore that 所以看一下这个方法,我只是想要这些
我正在寻找在Perl中表达 Python代码片段的方法:
data = {"A": None,"B": "yes","C": None}
key_list = [k for k in data if data[k]]  
# in this case the same as filter(lambda k: data[k],data) but let's ignore that

所以看一下这个方法,我只是想要这些值的值是None或undef.看另一种方式,我想要的是简洁的perl等同于list comprehension with conditional.

解决方法

我想你想要 grep
#!/usr/bin/env perl
use strict;
use warnings;

my %data = ( A => undef,B => 'yes',C => undef );

my @keys = grep { defined $data{$_} } keys %data;

print "Key: $_n" for @keys;

我也认为我打的太慢了,我应该在发布答案之前重新加载页面.顺便说一下,值为0或undef可以是处理空值的好方法,但请确保记住您使用的是什么. Perl中的虚假值和未定义的值是不一样的.要澄清:undef在布尔测试中返回false,但是也是0.如果0是一个有效值,那么你要显式测试定义,而不是简单的真理. (我提到,因为詹姆斯去了0,我走了另一个方式,你可能会或可能不知道是否重要.)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读