Skip to main content
 首页 » 编程设计

python之Perl 到 Python 哈希表的翻译

2025年05月04日9youxin

您好,我正在努力将 perl 转换为 python 以做某事。

我一直在查看 perl 中哈希表的一些代码,我遇到了一行代码,我真的不知道它是如何完成它在 python 中的作用的。我知道它将页面的位串移动 1

%page_table = ();           #page table is a hash of hashes 
%page_table_entry = (       #page table entry structure 
"dirty", 0,                 #0/1 boolean 
"referenced", 0,            #0/1 boolean 
"valid", 0,                 #0/1 boolean 
"frame_no", -1,             #-1 indicates an "x", i.e. the page isn't in ram 
"page", 0                   #used for aging algorithm.  8 bit string.); 
@ram = ((-1) x $num_frames); 

有人可以告诉我这将如何在 python 中表示吗?我已经完成了哈希表的定义,它们只是作为我正在做的事情的引用。感谢您能给我的任何帮助。

for($i=0; $i<@ram; $i++){ 
    $page_table{$ram[$i]}->{page} = $page_table{$ram[$i]}->{page} >> 1;} 

请您参考如下方法:

唯一令人困惑的是页表是哈希的哈希。 $page_table{$v} 包含一个散列引用,该散列包含值为整数的键“page”。循环对该整数进行位移,但不是很清楚的 perl 代码。更简单的是:

foreach my $v (@ram) { 
    $page_table{$v}->{page} >>= 1; 
} 

现在到 python 的翻译应该很明显了:

for v in ram: 
    page_table[v][page] >>= 1