如何使用地图加入两个列表?

van*_*die 2 perl merge list map

我在Perl中有这样的代码:

#!/usr/bin/perl -w

my @a = ('one', 'two', 'three');
my @b = (1, 2, 3);
Run Code Online (Sandbox Code Playgroud)

我想在结果中看到:@c = ('one1', 'two2', 'three3'); 我有没有办法将这些列表合并为一个?

Dav*_*oss 9

假设您可以保证两个数组的长度始终相同.

my @c = map { "$a[$_]$b[$_]" } 0 .. $#a;
Run Code Online (Sandbox Code Playgroud)


Ala*_*avi 6

作为替代方案,您可以使用pairwiseList::MoreUtils:

#!/usr/bin/env perl

use strict;
use warnings;

use List::MoreUtils qw( pairwise );

my @a = ( 'one', 'two', 'three' );
my @b = ( 1,     2,     3 );

my @c = do {
    no warnings 'once';
    pairwise { "$a$b" } @a, @b;
};
Run Code Online (Sandbox Code Playgroud)