arrays - 有没有一种方法可以根据数组的值而不是元素编号用数组中的两个新元素替换数组的元素?

标签 arrays perl

我正在用 Perl 编程,并且我有一个数组,例如 @contents=(A,S,D,F,M,E),我想要用两个新元素 XY 替换元素 M,例如 @contents 等于 (A,S,D,F,X,Y,E)

最佳答案

您可以使用 map .

@contents = map { $_ eq 'M' ? ('X','Y') : $_ } @contents;

或者您可以使用 splice :

for (0 .. $#contents) {
    if ($contents[$_] eq 'M') {
        splice @contents, $_, 1, 'X', 'Y';
    }
}

您还可以使用 keys @contents 进一步简化作为索引列表,如果您使用的是 5.12 及更高版本的 perl。

关于arrays - 有没有一种方法可以根据数组的值而不是元素编号用数组中的两个新元素替换数组的元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8599026/

相关文章:

multithreading - File::Tee 的线程安全替代方案?

perl - 无限循环读取配置文件

C++ 使用 "new"创建静态类数组或创建动态数组的另一种方法

arrays - 将数组作为项目推送到另一个数组 - 不创建多维数组

c++ - 更改 const 对象的数组成员的元素

perl - 为什么 'say "%hash"' 的工作方式与它对标量和数组的工作方式不同?

php - Perl/MySQL 'Host is not allowed' 和 ' failed: Client does not support authentication protocol requested by server' 错误?

c++ - 如何对 Eigen 中的二维数组的列执行简单的算术运算

arrays - 证明 Excel VBA Scripting.Dictionary 不保留项目插入顺序

python - 如何从 Python 读取 Perl 数据结构?