我是 python 新手,正在尝试对以下元组列表进行排序:
>>> str
[('991', 'Shantell'), ('992', 'Cherish'), ('993', 'Linsey'), ('994', 'Hali'), ('995', 'Tarah'), ('996', 'Annemarie'), ('997', 'Asha'), ('998', 'Jada'), ('999', 'Leila'), ('1000', 'Peggy')]
我想根据元组的第一个值对其进行排序,但不幸的是每个元组的第一个值是一个字符串而不是整数。我知道我可以创建一个执行此操作的关键函数:
def digit_key(t):
return (int(t[0]))
然后调用排序如下:
>>> 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')]
我总是必须在排序之前定义关键功能吗?有没有更漂亮的方法来编写这段代码而不为它定义两个函数?我尝试了以下但失败了:
>>> 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