我正在尝试对元组列表进行排序。它们采用这种格式:
("First Last", 3, 0)
或者换句话说:
(string, int, int)
我想按字符串值(第一个元组元素)排序。我从这个很棒的答案中找到了如何按某个元素对元组列表进行排序:https : //stackoverflow.com/a/3121985/8887398
这是我的代码:
# Yes, I do want to start from element 1 btw
myList[1:].sort(key=lambda tup: tup[0])
当我的元组中只有名字作为字符串的值时,这很有效,例如:
("George", 8, 3)
然后我添加了姓氏,例如:
("George Manning", 8, 3)
它不再正确排序,所以我尝试了这个:
myList[1:].sort(key=lambda tup: (tup[0].split(" ")[1]))
我非常有信心这会奏效。它没有。我很困惑,因为我知道我的split方法正确地从调试中提取了姓氏。我究竟做错了什么?如何按姓氏对我的列表进行排序?
这是一个例子。是的,它们是假名:
myList = [
("NAME", "SOME LABEL 1", "SOME LABEL 2"),
("Kevin Lee", 45, 4),
("John Bowes", 35, 2),
("George Smith", 8, 3),
("Gina Marnico", 40, 3),
("Alice Gordon", 48, 7),
("Lee Jackson", 49, 7),
("Adam Hao", 50, 4),
("Adrian Benco", 23, 2),
("Jessica Farner", 43, 20),
("Greg Hyde", 34, 20),
("Ryan Valins", 39, 7),
("Gary Funa", 49, 7),
("Sam Tuno", 15, 4),
("Katy Sendej", 30, 2),
("Jessica Randolf", 44, 8),
("Gina Gundo", 47, 30)
]
myList[1:].sort(key=lambda tup: (tup[0].split(" ")[1]))
我跳过第一个值,因为它是标签信息。我希望该元素保持不变,而列表的其余部分按姓氏排序。
繁花不似锦
江户川乱折腾
相关分类