在Perl中,如何使數組@A
和@B
具有相同數量的元素的散列?目標是在@B
中將每個值@A
作爲關鍵值。所得到的散列%C
將使得能夠唯一地識別來自@A
的供應密鑰的@B
中的元素。如何從數組中使用鍵和另一個數組創建一個Perl哈希值?
8
A
回答
23
它的那樣簡單
my %c;
@c{@a} = @b;
2
0
A是鍵,B的是哈希C的值:
use strict;
use warnings;
my @a = 1 .. 3;
my @b = 4 .. 6;
my %c;
for (0 .. $#a) {
$c{$a[$_]} = $b[$_]
}
請記住,不能有任何重複的值A數組。
8
use List::MoreUtils 'mesh';
my %c = mesh @a, @b;
這就是它的內部是怎樣做(如果你確定大約相等數量的元素):
my %c = map { $a[$_] => $b[$_] } 0 .. $#a;
+0
好的一個,我沒有想到使用地圖。 – 2010-02-21 17:58:27
+0
或者滾動你自己的:'sub mesh {@_ [map $ _&1? $ _ >> 1:($ _ >> 1)+($#_ >> 1),1 .. @ _]}' – ysth 2010-02-21 23:28:06
相關問題
- 1. 如何從另一個php數組創建php哈希數組?
- 2. 爲哈希鍵值創建一個數組(Perl)
- 3. 如何將一個數組轉換爲哈希鍵和另一個數組轉換爲相同哈希的值?
- 4. 反轉哈希:從一個數組中創建多個哈希鍵
- 5. 如何從Perl中的哈希數組創建哈希散列?
- 6. Ruby:創建一個哈希數組,其中每個值都是一個數組
- 7. 如何在Perl中創建數組和哈希值?
- 8. 如何在perl中創建兩個數組的哈希映射(鍵值對)
- 9. 的Perl:數組的哈希值與另一個陣列相比
- 10. 使用兩個數組創建哈希
- 11. 如何構建一個Perl多維數組或哈希?
- 12. Perl的哈希數組 - 引用數組中的每個哈希值?
- 13. 創建一個整數和值爲整數的哈希集鍵的哈希表
- 14. 如何在Perl中使用8個標題/列和20行創建一個哈希數組使用for循環
- 15. 使用關聯數組鍵和數值數組值創建一個數組PHP
- 16. 在Perl中使用哈希和數組
- 17. 使用數組作爲鍵創建Perl哈希
- 18. Perl數據結構:如何從一個數組創建一個數組引用
- 19. Perl:將數組的2個哈希與另一個數組進行比較
- 20. 如何在Perl中創建一個共享變量(哈希數組)
- 21. 使用哈希選擇一個數組
- 22. 排序數組,這是一個哈希值在Perl中
- 23. 在perl中打印一個哈希數組值
- 24. 紅寶石:使用哈希數組從哈希的另一個陣列
- 25. Perl哈希和數組
- 26. 從另一個數組創建數組,如果值是相同
- 27. 如何在一個數組中創建另一個數組(VBA)中的值?
- 28. 將紅寶石哈希與值數組合併到另一個哈希值與數組數組
- 29. 如何從Perl中數組引用哈希刪除鍵
- 30. 用兩個數組創建一個哈希表
太棒了!我忘了切片解決方案,但我經常使用它。 – codeholic 2010-02-21 18:29:12
謝謝!我想知道爲什麼它不在書中(我讀過的書)。 – Temujin 2010-02-21 20:10:53
http://perldoc.perl.org/perldata.html#Slices – toolic 2010-02-21 20:19:34