【发布时间】:2021-03-29 11:49:25
【问题描述】:
例如: 名称和编号在 file.txt 中,如下所示:
Sara 2,873
Mina 152,167
Josh 100,81
Bo 1,13
Leon 12,4
要将文件读入列表列表,我使用了代码:
file_name = open("file.txt", "r")
list_of_lists = []
for line in file_name:
strip_line = line.strip()
line_list = strip_line.split()
list_of_lists.append(line_list)
file_name.close()
print(list_of_lists)
输出:
list_of_lists = [['Sara', '2,873'],['Mina', '152,167'], ['Josh', '100.81'], ['Bo', '1,13'], ['Leon', '12.4']]
我想按浮点数对这个列表进行排序。它应该是这样的:
[['Bo', '1,13'], ['Sara', '2,873'], ['Leon', '12,4'], ['Josh', '100.81'], ['Mina', '152,167']]
我试过这个代码来排序:
def sort_list():
list_of_lists.sort(key=lambda x: x[1])
print(list_of_lists)
sort_list()
但我得到这个按名称排序的输出:
[['Bo', '1,13'], ['Josh', '100.81'], ['Leon', '12.4'], ['Mina', '152,167'], ['Sara', '2,873']]
代码有什么问题?如何按浮点数排序?
【问题讨论】:
-
那些不是
float对象,那些是字符串。与往常一样,字符串按字典顺序排序。如果要使用float对象,则必须创建实际的float对象
标签: python list sorting numbers