擅长:python、mysql、java
<p>使用dict comprehension、zfill和enumerate:</p>
<pre><code>with open('/tmp/names.txt') as f:
print({bin(k)[2:].zfill(3): v.strip() for k,v in enumerate(f)})
</code></pre>
<p>印刷品:</p>
^{pr2}$
<p>如果您不知道文件中有多少行是为了给<code>zfill</code>使用正确的数字,您可以先对它们进行计数:</p>
<pre><code>with open(fn) as f:
i=max(ln for ln,line in enumerate(f) if line.strip())
print(i, bin(i)[2:])
fill=len(bin(i)[2:])
f.seek(0)
print({bin(k)[2:].zfill(fill): v.strip() for k,v in enumerate(f) if v.strip()})
</code></pre>