回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我想创建一个名为《片段》的价值字典
给定词典的键必须是片段的名称和项目,它是Unicode字符表示法。<br/></p>
<p>我决定写一个列表理解来检索Unicode字符和一个包含我需要的所有名称的列表</p>
<pre><code>pieces = dict(zip(['Queen','King','Tower','Bishop','Knight','Pawn']*2,[chr(int(f'265{i:X}',16)) for i in range(4,16)]))
print(pieces)
>> {'Queen': '♚', 'King': '♛', 'Tower': '♜', 'Bishop': '♝', 'Knight': '♞', 'Pawn': '♟'}
</code></pre>
<p>我反转了zip函数的参数,得到:</p>
<pre><code>pieces = dict(zip([chr(int(f'265{i:X}',16)) for i in range(4,16)],['Queen','King','Tower','Bishop','Knight','Pawn']*2))
print(pieces)
>> {'♔': 'Queen', '♕': 'King', '♖': 'Tower', '♗': 'Bishop', '♘': 'Knight', '♙': 'Pawn', '♚': 'Queen', '♛': 'King', '♜': 'Tower', '♝': 'Bishop', '♞': 'Knight', '♟': 'Pawn'}
</code></pre>
<p>我无法理解这些输出。起初,我认为可能第二个参数“引导”了字典的大小,因此我调整了名称列表的大小并混合了参数,结果如下:</p>
<pre><code>pieces = dict(zip([chr(int(f'265{i:X}',16)) for i in range(4,16)],['Queen','King','Tower','Bishop','Knight','Pawn']))
print(pieces)
>> {'♔': 'Queen', '♕': 'King', '♖': 'Tower', '♗': 'Bishop', '♘': 'Knight', '♙': 'Pawn'}
pieces = dict(zip(['Queen','King','Tower','Bishop','Knight','Pawn'],[chr(int(f'265{i:X}',16)) for i in range(4,16)]))
print(pieces)
>> {'♔': 'Queen', '♕': 'King', '♖': 'Tower', '♗': 'Bishop', '♘': 'Knight', '♙': 'Pawn'}
</code></pre>
<p>调整大小之前:</strong><br/>
第一行代码打印第一个列表的6个成员和最后一个列表的最后6个成员<br/>
第二行代码打印第一个列表的所有成员和第二个列表的所有成员<br/><br/>
调整大小后:</strong><br/>
两行都打印两个列表的前6个成员</p>
<p>我的问题是:为什么</p>
<p>至于我的怀疑,我只能用以下的话来表达:</p>
<blockquote>
<p>🤷</p>
</blockquote>