我今天刚刚安装了Python,我想按姓氏对从文本文件导入的名称列表进行排序。txt文件中的每个名称都由逗号和空格分隔。我之所以经常使用打印,是因为我想遵循每一步,看看哪里出了问题。
起初,它只是返回了我输入的同一组名称,我认为这是因为名称周围没有撇号。所以我加入了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']
预期产出:
'Branson Calhoun', 'Hallie Clark', 'Lee Cordova', 'Callum Ferguson', 'Amanda Fowler', 'Avery Hill', 'Louis Malone', 'Jett Obrien', 'Jeremy Underwood'
当您使用
read
时,输出是一个字符串,您可以使用split
方法在列表中转换输入:您已经获得了所需的输出:
f.read()
是一个字符串,因此您的输出对包含所有名称的单个字符串进行排序。您将需要执行f.read().split(',')
而不是将输出放入列表中(假设所有条目都在您编写的单行上)相关问题 更多 >
编程相关推荐