Perl 中声明和使用二维数组366


二维数组在 Perl 中用作存储表格数据或具有两个维度(行和列)的任何其他类型数据的便捷方法。它们通常用于表示网格、图表或任何具有行和列结构的数据。

创建二维数组

要创建一个二维数组,您需要使用 my @array_name; 语法,其中 @array_name 是您的数组名称。然后,您可以使用 push @array_name, [ [ ], [ ], ... ]; 语法向数组中添加内部数组,其中 [ ] 表示内部数组。

例如:创建一个 2x3 的二维数组:```
my @array_name = (
[ 1, 2, 3 ],
[ 4, 5, 6 ]
);
```

访问数组元素

可以通过以下语法访问二维数组中的元素:```
$array_name[row_index][column_index]
```

例如:要访问二维数组 @array_name 中第 1 行第 2 列的元素,您可以使用:```
$value = $array_name[0][1];
```

遍历数组

您可以使用嵌套循环遍历二维数组。第一个循环遍历行,第二个循环遍历列:```
for (my $row_index = 0; $row_index < scalar @array_name; $row_index++) {
for (my $column_index = 0; $column_index < scalar @{$array_name[$row_index]}; $column_index++) {
print $array_name[$row_index][$column_index], "";
}
}
```

修改数组

您可以通过直接赋值来修改二维数组中的元素:```
$array_name[row_index][column_index] = new_value;
```

例如:要将 @array_name 中第 1 行第 2 列的元素更改为 10,您可以使用:```
$array_name[0][1] = 10;
```

其他数组操作

除了声明、访问和遍历二维数组外,您还可以执行以下操作:
使用 scalar @{$array_name} 获取数组的行数。
使用 scalar @{ $array_name[0] } 获取数组中第一行的列数(假设所有行具有相同数量的列)。
使用 push @{$array_name[$row_index]}, ... 向数组中的特定行添加一个或多个新元素。
使用 splice @array_name, $row_index, $count, ... 从数组中删除元素(请注意,此操作会修改原始数组)。

示例

以下是一个展示二维数组操作的示例:```
my @array_name = (
[ 1, 2, 3 ],
[ 4, 5, 6 ]
);
print "Original array:";
for (my $row_index = 0; $row_index < scalar @array_name; $row_index++) {
for (my $column_index = 0; $column_index < scalar @{$array_name[$row_index]}; $column_index++) {
print $array_name[$row_index][$column_index], "\t";
}
print "";
}
# 修改元素
$array_name[0][1] = 10;
# 添加一行
push @array_name, [ 7, 8, 9 ];
print "Modified array:";
for (my $row_index = 0; $row_index < scalar @array_name; $row_index++) {
for (my $column_index = 0; $column_index < scalar @{$array_name[$row_index]}; $column_index++) {
print $array_name[$row_index][$column_index], "\t";
}
print "";
}
```

输出```
Original array:
1 2 3
4 5 6
Modified array:
1 10 3
4 5 6
7 8 9
```

2024-12-22


上一篇:四舍五入:在 Perl 中精通数字修剪

下一篇:Perl 中的二维数组声明