Trong Perl, làm cách nào để tạo băm từ mảng @A
và @B
có số phần tử bằng nhau? Mục tiêu là phải có mỗi giá trị @A
làm khóa để định giá trong @B
. Khi đó, hàm băm %C
sẽ giúp xác định duy nhất một phần tử từ @B
khóa cung cấp từ @A
.Làm thế nào tôi có thể tạo một băm Perl từ một mảng với các khóa và một mảng khác với các giá trị?
Làm thế nào tôi có thể tạo một băm Perl từ một mảng với các khóa và một mảng khác với các giá trị?
Trả lời
nó đơn giản như
my %c;
@c{@a} = @b;
Nếu tôi hiểu vấn đề một cách chính xác:
my %c;
$c{$a[$_]} = $b[$_] for (0 .. @a-1);
A là chìa khóa, B là những giá trị của băm C:
use strict;
use warnings;
my @a = 1 .. 3;
my @b = 4 .. 6;
my %c;
for (0 .. $#a) {
$c{$a[$_]} = $b[$_]
}
Hãy ghi nhớ rằng không phải bất kỳ giá trị trùng lặp trong mảng A.
use List::MoreUtils 'mesh';
my %c = mesh @a, @b;
Đó là cách nó được thực hiện trong nội bộ (nếu bạn chắc chắn về số lượng tương đương của các yếu tố):
my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
Đẹp nhất, tôi đã không nghĩ về việc sử dụng bản đồ. –
hoặc cuộn của riêng bạn: 'lưới phụ {@_ [map $ _ & 1? $ _ >> 1: ($ _ >> 1) + ($ # _ >> 1), 1 .. @ _]} ' – ysth
- 1. Tạo một hàm băm Perl với một mảng làm khóa
- 2. sáp nhập băm ruby với mảng giá trị vào một giá trị băm khác với mảng giá trị
- 3. Làm cách nào tôi có thể lọc một mảng băm để chỉ lấy các khóa trong một mảng khác?
- 4. Perl Làm thế nào để lấy một mảng từ một mảng băm?
- 5. Làm cách nào để trích xuất các giá trị và khóa mảng cụ thể cho một mảng khác?
- 6. Làm thế nào tôi có thể trả lại một giá trị ngẫu nhiên từ một mảng?
- 7. Tạo một cuốn từ điển với mảng như giá trị
- 8. Trong Perl, làm cách nào để tạo một băm có khóa đến từ một mảng nhất định?
- 9. Làm thế nào để xóa một khóa và trả về giá trị từ một mảng PHP?
- 10. Làm thế nào tôi có thể tìm thấy số lượng khóa trong một băm trong Perl?
- 11. Làm việc với một mảng có dấu chấm trong các giá trị khóa
- 12. Làm cách nào để sắp xếp một mảng tham chiếu băm bằng một trong các giá trị băm?
- 13. Làm thế nào để tạo và khởi tạo một mảng với mảng khác?
- 14. Khởi tạo một mảng liên kết với các tên khóa nhưng giá trị rỗng
- 15. Jquery: Chuỗi thay thế với giá trị từ một mảng
- 16. Lấy giá trị chính băm cụ thể từ một mảng băm
- 17. Khởi tạo một mảng với một giá trị đơn
- 18. Sao chép các giá trị từ một giá trị băm này sang một số khác trong perl
- 19. Làm cách nào tôi có thể trích xuất giá trị băm vào một mảng trong thứ tự chèn của chúng?
- 20. Làm thế nào để tránh đẩy các giá trị trùng lặp vào một mảng Perl
- 21. của Ruby dễ dàng tìm kiếm các cặp khóa-giá trị trong một mảng băm
- 22. Chuyển đổi mảng Ruby của bộ thành một băm cho một mảng các khóa?
- 23. Tạo một băm từ một dãy các phím
- 24. Hàm băm Perl khi cả khóa và giá trị là tham chiếu mảng
- 25. Tạo Bảng băm với hai mảng
- 26. Trao đổi các khóa và giá trị trong một băm
- 27. Làm thế nào tôi có thể xoay một mảng 3D?
- 28. Tôi làm cách nào để thêm các cặp giá trị khóa vào một mảng?
- 29. Tạo một mảng được điền với một dãy các giá trị x qua y
- 30. Khởi tạo toàn bộ mảng 2D với một giá trị
Tuyệt vời! Tôi quên về giải pháp lát, mặc dù tôi sử dụng nó thường xuyên. – codeholic
Cảm ơn! Tôi tự hỏi tại sao nó không có trong sách (tôi đọc). – Temujin
http://perldoc.perl.org/perldata.html#Slices – toolic