在python中按字母顺序列出文件中的单词

时间:2014-03-20 12:10:26

标签: python-2.7

我刚刚开始学习python。我必须完成的一项任务是编写一个代码,该代码将获取用户提交的文本文件,并按字母顺序列出文件中的单词。

我的代码。

f=open(raw_input("What file would you like to import?"))
for word in f:
    print(sorted(word))

这不会按字母顺序列出单词,但会按字母顺序列出单词中的字母。

例如。而不是人类,输出['\n', 'a', 'h', 'm', 'n', 'u']

修改

文本文件中的单词位于不同的行:

human  
dog  
cat 
etc..

输出如下:

['\n', 'a', 'h', 'm', 'n', 'u']
['\n', 'd', 'g', 'o']
etc..

但是我需要输出为:    土豚    猫    牛    狗    等...

1 个答案:

答案 0 :(得分:1)

你的方法的问题是for word in f遍历文件中的行,如果每行有一个单词,那么sorted(word)将对该单词的元素(字母)进行排序。

相反,只需要sorted(f)对文件中的行(即单词)进行排序。

请注意,这将包括行结束字符。通过将sorted(map(str.strip, f))函数应用于每个行/单词,使用strip删除它。或者,您也可以使用sorted(f.read().split())在任何空白字符处删除文件的内容。当每行有多个单词时,这也会有效。