我刚开始学习蟒蛇。我必须完成的一项任务是编写一个代码,它将接收用户提交的文本文件,并按字母顺序列出文件中的单词。
我的密码。
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..
但是我需要的输出是: aardvark,猫,牛,狗等等.
发布于 2014-03-20 12:31:15
您的方法的问题是,for word in f
循环遍历文件中的行,如果每行有一个单词,那么sorted(word)
将对该单词的元素(字母)进行排序。
相反,只需执行sorted(f)
对文件中的行(即单词)进行排序。
请注意,这将包括行结束字符。通过将sorted(map(str.strip, f))
函数应用于每一行/每一个单词,使用strip
来删除它。或者,您也可以使用sorted(f.read().split())
在任何空格字符中删除文件的内容。当每行有多个单词时,这也会起作用。
https://stackoverflow.com/questions/22532608
复制相似问题