擅长:python、mysql、java
<p>也许我在你的描述中遗漏了什么,但是按照你的逻辑,我得到了相同的输出</p>
<p>我相信您的代码是错误的,在计数后循环-但在这种情况下,它可能奇怪地没有改变输出</p>
<pre><code>requests=[1, 13, 15, 1, 3, 4, 2, 12, 10, 4, 1, 15, 15, 11, 14, 7, 10, 9, 14, 5]
freq = {}
for r in requests:
r = str(r)
if r in freq:
freq[r]+=1
print(f'Hit {r}')
else:
freq[r]=1
print(f'Miss {r}')
if len(freq.keys()) > 8:
# Get list of keys that share the lowest frequency
k = [int(k) for k, v in freq.items() if v == min(freq.values())]
print(f'Requests sharing the lowest frequency of {min(freq.values())} -> {k}')
print(f'Dropping lowest request value -> {min(k)}')
del freq[str(min(k))]
print([int(x) for x in freq.keys()])
</code></pre>
<p>最终产量</p>
<pre><code>[1, 13, 15, 4, 12, 10, 11, 14]
</code></pre>