我正在尝试编写一个执行以下操作的函数
这是我的代码
def alphabetic():
file = open("word-text.txt","r")
data=file.read()
print (data)
file.close()
listsort=data
listsort.sort()
print(listsort)
每当我尝试运行此代码时,我使用“文件”的列表将不会被排序,我得到以下结果(这与我的列表顺序相同),我试图用字母顺序对它们进行排序订单有错误
>>> alphabetic()
apples
oranges
watermelon
kiwi
zucchini
carrot
okra
jalapeno
pepper
cucumber
banana
Traceback (most recent call last):
File "<pyshell#32>", line 1, in <module>
alphabetic()
File "/Users/user/Desk`enter code here`top/Outlook(1)/lab6.py", line 15, in alphabetic
listsort.sort()
AttributeError: 'str' object has no attribute 'sort'`
我真的是一个新的程序员,我正努力做到最好,但请明确,因为我不是最好的
答案 0 :(得分:2)
您的方法无效,因为read
方法只返回一个字符串。由于Python字符串没有sort()
方法,因此您收到了错误。 sort
方法适用于lists
,如我的方法中使用readlines
方法所示。
如果这是您的文件内容:
apples
oranges
watermelon
kiwi
zucchini
carrot
okra
jalapeno
pepper
cucumber
banana
以下是相关代码:
with open('word-text.txt', 'r') as f:
words = f.readlines()
#Strip the words of the newline characters (you may or may not want to do this):
words = [word.strip() for word in words]
#sort the list:
words.sort()
print words
输出:
['apples', 'banana', 'carrot', 'cucumber', 'jalapeno', 'kiwi', 'okra', 'oranges', 'pepper', 'watermelon', 'zucchini']