回答此问题可获得 20 贡献值,回答如果被采纳可获得 50 分。
<p>我是python新手,正在尝试对以下元组列表进行排序:</p>
<pre><code>>>> str
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
</code></pre>
<p>我想根据元组的第一个值对它进行排序,但不幸的是,每个元组的第一个值都是字符串而不是整数。我知道我可以创建一个键函数来执行以下操作:</p>
<pre><code>def digit_key(t):
return (int(t[0]))
</code></pre>
<p>然后按如下顺序调用:</p>
<pre><code>>>> sorted(str,key=digit_key)
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
</code></pre>
<p>在排序之前我是否总是要定义键函数??
有没有一种更漂亮的方法来编写这个代码而不必为它定义两个函数??
我尝试了以下操作但失败了:</p>
<pre><code>>>> sorted(str,key= int(str[0][0]))
Traceback (most recent call last):
File "<pyshell#1112>", line 1, in <module>
sorted(str,key= int(str[0][0]))
TypeError: 'int' object is not callable
</code></pre>