我今天刚刚安装了 Python,我想按姓氏对从文本文件中导入的名称列表进行排序。txt 文件中的每个名称都用逗号和空格分隔。我经常使用 print 的原因是我想跟踪每一步,看看哪里出了问题。起初它只是返回我输入的相同名称集,我认为这是因为名称周围没有撇号。所以我投入了studenten1
尝试解决这个问题。
f = open('namenlijst.txt', 'r')
studenten = f.read()
f.close()
print(studenten)
studenten1 = "'" + studenten.replace(", ", "', '") + "'"
print (studenten1)
print(sorted(studenten1, key=lambda x: x.split(",")[-1]))
输入:
Jeremy Underwood, Louis Malone, Jett Obrien, Lee Cordova, Avery Hill, Amanda Fowler, Callum Ferguson, Hallie Clark, Branson Calhoun
输出:
Jeremy Underwood, Louis Malone, Jett Obrien, Lee Cordova, Avery Hill, Amanda Fowler, Callum Ferguson, Hallie Clark, Branson Calhoun
'Jeremy Underwood', 'Louis Malone', 'Jett Obrien', 'Lee Cordova', 'Avery Hill', 'Amanda Fowler', 'Callum Ferguson', 'Hallie Clark', 'Branson Calhoun'
[',', ',', ',', ',', ',', ',', ',', ',', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", "'", 'A', 'A', 'B', 'C', 'C', 'C', 'C', 'F', 'F', 'H', 'H', 'J', 'J', 'L', 'L', 'M', 'O', 'U', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'b', 'd', 'd', 'd', 'd', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'e', 'g', 'h', 'i', 'i', 'i', 'i', 'k', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'l', 'm', 'm', 'm', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'o', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 'r', 's', 's', 's', 't', 't', 'u', 'u', 'u', 'u', 'v', 'v', 'w', 'w', 'y', 'y']
预期输出:
“布兰森·卡尔霍恩”、“哈利·克拉克”、“李·科尔多瓦”、“卡勒姆·弗格森”、“阿曼达·福勒”、“艾弗里·希尔”、“路易斯·马龙”、“杰特·奥布莱恩”、“杰里米·安德伍德”