如何将字符串拆分为具有 undef 值的哈希键?

发布于 2024-12-17 12:32:37 字数 268 浏览 0 评论 0原文

这是我的字符串:
NANA TEKA KAOE FLASK LSKK

我该如何制作它,使其看起来像这样:
哈希 = {NANA => undef,TEKA => undef, KAOE => undef, ...

当然,我总是可以先将其拆分为一个数组
然后循环遍历每个值,然后将它们分配为散列
键...但是是否有更短/更简单的方法来做到这一点?

提前致谢!

Here's my string:
NANA TEKA KAOE FLASK LSKK

How do I make it so that it'll look like this:
HASH = {NANA => undef, TEKA => undef, KAOE => undef, ...

Of course I could always split this into an array first
then loop through each value then assign them as hash
keys... but If there's a shorter/simpler way to do that?

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

阳光①夏 2024-12-24 12:32:37

您可以拆分字符串并使用映射来生成输出哈希。

my $string = "NANA TEKA KAOE FLASK LSKK";
my %hash = map { $_ => undef } split(/\s/, $string);

You can split the string and use a map to generate the output hash.

my $string = "NANA TEKA KAOE FLASK LSKK";
my %hash = map { $_ => undef } split(/\s/, $string);
橙幽之幻 2024-12-24 12:32:37

@hash{ split /\s+/, $string } = ();

@hash{ split /\s+/, $string } = ();

马蹄踏│碎落叶 2024-12-24 12:32:37

我怀疑这是否是最简洁的方法,但它似乎有效:

use warnings;
use strict;

my $string = "NAN TEKA KAOE FLASK LSKK";
my %hash = map { ($_ => undef) } split /\s+/, $string;

foreach my $key (keys %hash)
{
    printf "$key => %s\n", (defined($hash{$key})) ? $hash{$key} : "undef";
}

I doubt if this is the most succinct way to do it, but it seems to work:

use warnings;
use strict;

my $string = "NAN TEKA KAOE FLASK LSKK";
my %hash = map { ($_ => undef) } split /\s+/, $string;

foreach my $key (keys %hash)
{
    printf "$key => %s\n", (defined($hash{$key})) ? $hash{$key} : "undef";
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文