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

Python 为什么这段代码按字符排序而不是按行排序?,python,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', ' ', ' ', ' ', "'", "'", "'", "'", "'", "'"

这个文件是用来对我的数据进行排序的,但它不起任何作用,你知道如何修复它吗? 我的文件中的数据是:

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"]
这将在排序后覆盖
数据的内容

data = sorted(data)
要打印列表的内容,您必须执行以下操作

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

你有被骗的帖子的反面;您使用的是
sorted()
并期望它就地排序,而不是使用
list.sort()
并期望它返回已排序的数据。不过,那里的帖子也回答了你的问题。
data=f.read()
会给你一个字符串,这样它一次可以对单个字符进行排序。像排序('102030')
给你
['0'、'0'、'0'、'1'、'2'、'3']
,字符串也可能包含新行
\n
。那么我该如何停止打印['\n'、'\n'、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''、''尽管james:[4.0]和gib[5.0]在文件中,这只是打印相同的东西,但向下我尝试了,但仍然保留了/n的部分。这可能要求太多,但a如何做相反的事情?@jimbob我给了你链接,它包含所有内容。先检查一下。(要反转,必须进行排序(数据,反转=真)
for i in data:
    print(i.strip('\n'))