为什么这个代码按字符排序而不是按行排序?

时间:2015-01-23 14:19:58

标签: python

f=open("classa2.txt", "r")
data=f.read()
x=sorted(data)
print(x)

这个文件意味着对我的数据进行排序,但它什么也没做,任何想法如何修复它? 我文件中的数据是:

james:["6.0"]
gim["7.0"]
him["2.3333333333333335"] 

但它打印出来:

['\n', '\n', '\n', '\n', ' ', ' ', ' ', "'", "'", "'", "'", "'", "'", '.',             '.', '.', '0', '0', '2', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '3', '5', '6', '7', ':', ':', ':', '[', '[', '[', ']', ']', ']',   'a', 'e', 'g', 'h', 'i', 'i', 'j', 'm', 'm', 'm', 's']

当预期结果是:

gim["7.0"]
him["2.3333333333333335"] 
james:["6.0"]

为什么?

1 个答案:

答案 0 :(得分:0)

sorted不在原位。它只会返回一个排序列表。您必须将其分配回来

data = sorted(data)

这将在排序后覆盖data的内容。

f=open("classa2.txt", "r")
data=f.readlines()
data=sorted(data)
print(data)

要打印列表的内容,您必须

for i in data:
    print(i.strip('\n'))