您好,我正在努力将 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
