【发布时间】:2015-03-08 02:22:40
【问题描述】:
我想打印一个每行一个单词的列表,但是当我打印排序后的版本时,我似乎无法做到这一点。我的文本文件只有五个字,每行一个,
dog
bit
mailman
cat
anteater
就代码而言一切都很好,只是解决如何正确打印出来。
def letterSort(wordlist):
letterbin = [[] for _ in range(26)]
final = []
for line in open(wordlist):
word = line.strip().lower()
firstLetter = word[0]
index = ord(firstLetter) - ord('a')
bins = letterbin[index]
if not word in bins:
bins += [word]
for bins in letterbin:
insertion_sort(bins)
final += bins
return final
def swap( lst, i, j ):
temp = lst[i]
lst[i] = lst[j]
lst[j] = temp
def insert( lst, mark ):
index = mark
while index > -1 and lst[index] > lst[index+1]:
swap( lst, index, index+1 )
index = index - 1
def insertion_sort( lst ):
for mark in range( len( lst ) - 1 ):
insert( lst, mark )
def main():
wordlist = input("Enter text file name: ")
print("Input words:", )
for line in open(wordlist):
print(line.strip())
print("\n")
print("Sorted words:", )
for line in open(wordlist):
print(letterSort(wordlist.strip()))
main()
毕竟这就是我得到的:
Enter text file name: wordlist.txt
Input words:
dog
bit
mailman
cat
anteater
Sorted words:
['anteater', 'bit', 'cat', 'dog', 'mailman']
['anteater', 'bit', 'cat', 'dog', 'mailman']
['anteater', 'bit', 'cat', 'dog', 'mailman']
['anteater', 'bit', 'cat', 'dog', 'mailman']
['anteater', 'bit', 'cat', 'dog', 'mailman']
【问题讨论】:
标签: python list sorting printing