我正在用 Perl 编程,并且我有一个数组,例如 @contents=(A,S,D,F,M,E)
,我想要用两个新元素 X
和 Y
替换元素 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/