Perl 相当于(Python-)列表理解

2024-04-20

我正在寻找用 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 or undef。从另一个角度来看,我想要的是简洁的 perl 等价物带条件的列表理解 http://docs.python.org/tutorial/datastructures.html#list-comprehensions.


我想你想要grep http://perldoc.perl.org/functions/grep.html:

#!/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 or undef可能是一个很好的处理方法null值,但请确保记住您正在使用的值。在 Perl 中,假值和未定义值不是一回事。澄清:undef在布尔测试中返回 false,但也是如此0. If 0是一个有效值,那么您想要显式测试定义性,而不仅仅是真理。 (我提到它是因为詹姆斯去了0我走了另一条路,你可能知道也可能不知道这是否重要。)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Perl 相当于(Python-)列表理解 的相关文章

随机推荐

  • 使用 MVVM 动态添加时给予 TabItem 焦点

    所有 我添加一个TabItem to a TabControl动态地使用 MVVM 新的TabItems加载良好 但我希望添加的选项卡自动获得焦点 也就是说 我添加了一个选项卡 但我不想必须单击该选项卡才能获得焦点 XAML 的TabCon
  • 如何将 CSS 样式仅应用于文本

    我正在尝试将样式应用于 HTML 文本之类的内容 我想要的基本上是 我得到的基本上是 正如您所看到的 第一行是缩进的 但其他行没有缩进 到目前为止 我已经将文本包含在 span 它嵌套在一个 div slide text text back
  • 作为 Windows 服务运行时,.Net Core 6 Worker Service 不写入日志

    我使用 C Net Core 6 Visual Studio 2022 创建了一个辅助服务 如果通过 Visual Studio 运行或直接从 Windows 资源管理器 PowerShell 启动 它会按预期写入日志文件 但是 当作为 W
  • 如何强制子进程刷新标准输出缓冲区?

    平台 Windows 8 1 IDE vs2013 使用c c 进程 A 使用管道重定向读取子进程的标准输出 但子进程不会在 printf 之后调用 fflush 以在子进程运行结束之前处理 A 无法从管道读取任何内容 ps 我有子进程的源
  • 具有可定制内容的 JSF 迭代复合组件

    我想创建一个复合组件 可以将迭代元素的实际布局传递给复合组件 这是一个简化的示例并且有效
  • 如何访问分区 Athena 表的子目录中的数据

    我有一个 Athena 表 每天都有一个分区 其中实际文件按小时位于 子目录 中 如下所示 s3 my bucket data 2019 06 27 00 00001 json s3 my bucket data 2019 06 27 00
  • python中字典列表中的top-k

    有没有一种简单的方法来执行此示例中的最大 k 个键 值对 s1 val 0 s2 val 10 s3 val 5 s4 val 4 s5 val 6 s6 val 7 s7 val 3 shapelets s1 s2 s3 s4 s5 s6
  • 如何通过光标url缩小图像的大小?

    我有一张尺寸为 105x105 的图像 我使用以下 CSS 脚本将其用作光标 class 1 child 1 cursor url theBell png 20 20 auto 当我将鼠标移到元素上时会出现图像 但它太大了 我不知道如何减小
  • 在 C# 中动态更改命名空间

    我想做这样的事情 如果定义了 DEBUG 则命名空间为 Test 或者命名空间为 TestB 请参阅下面的示例代码 我可以这样做吗 或者您有更好的想法来实现这一目标吗 提前致谢 if DEBUG SomekindofAttribute Na
  • 使用 Turbolinks 渲染同一页面时无法使用 Flash

    我试图在点击更新端点后显示闪存消息 我想让用户保持在同一页面上并告诉他信息已更新 我启用了 Turbolink 我的操作如下 def update form Form find params id if form update form p
  • “提供程序包”未正确加载

    VS 2013 专业版 版本 12 0 31101 00 更新 4 突然间 每当我尝试打开一个项目 MVC 项目或 Python 项目 时 我都会得到 ProviderPackage 包未正确加载 问题 可能是由配置更改或安装引起的 另一个
  • Vue 3 - 如何将组件和混入与根组件一起包含?

    我尝试将语法从 Vue 2 转换为 Vue 3 但我不确定如何包含mixins and 成分 如果您在 Vue 2 中看到以下代码 import App from App vue const app new Vue mixins globa
  • 模态内部的不同输出(Laravel 5.4)

    我的 trips blade php 中有这段代码 问题是当我的 t gt employees 位于模态之外时 我检索所有员工 但是当我将 t gt employees 放入模态中时 我只能检索 1 个数据 我无法找出这种情况下的任何错误
  • 如何清除ID未知的Interval?

    假设有人 邪恶 给我们设置了一个计时器setInterval 但我们不知道它的 ID 我们没有 setInterval 返回的对象的引用 也没有它的值 function setInterval function console log pw
  • Visual Studio:在“从程序集中添加工具箱项目”上停留了 11 个小时

    昨晚卸载并重新安装了 Visual Studio 2015 但安装并更新后 一旦我打开软件 它说 Adding toolbox items from assembly C Program Files x86 Microsoft SDK s
  • “ORA-01008:并非所有变量都绑定”错误

    我正在使用以下方法通过使用 jdbc 计算工资单 但 ORA 01008 并非所有变量都绑定 错误未删除 有什么想法吗 我正在使用以下代码 public double getPayroll ResultSet rs null ResultS
  • 如何将 CIPixellate Core Image Filter 添加到 Sprite Kit 场景?

    如何将 CIPixellate Core Image Filter 添加到 Sprite Kit 场景 我有一个 SpriteKit 场景 它是 SKScene 或其子类 我想向场景添加一个核心图像滤镜 特别是 CIPixellate 过滤
  • 对话框片段中的空指针

    我正在尝试从Class当给这个充气时Dialog Fragment但当Class有价值观 这对我来说很奇怪 也许我错过了一些东西 这是代码 对话片段 public class Dialog Fragment extends DialogFr
  • 如何使用 XPATH 找到两个 H3 之间的所有节点?

    如何使用 XPATH 找到两个 H3 之间的所有节点 在 XPath 1 0 中 实现此目的的一种方法是使用 Kayessian 方法进行节点集交集 ns1 count ns2 count ns2 上面的表达式精确选择属于节点集的节点 ns
  • Perl 相当于(Python-)列表理解

    我正在寻找用 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 filte