Skip to main content
 首页 » 编程设计

python之按字母顺序排列句子并计算每个单词出现的次数并打印在表格中

2025年05月04日9zhujiabin

我正在为问题的表格部分中的打印而苦苦挣扎。到目前为止,我已经设法按字母顺序对用户输入的句子进行排序,并计算每个单词出现的次数。这是代码:

thestring = (raw_input()) 
sentence = thestring.split(" ") 
sentence.sort() 
 
count = {} 
for word in thestring.split(): 
    try: count[word] += 1 
    except KeyError: count[word] = 1 
 
print sentence 
print count 

当我运行代码时,我得到了这个:

['apple', 'apple', 'banana', 'mango', 'orange', 'pear', 'pear', 'strawberry'] 
{'apple': 2, 'pear': 2, 'strawberry': 1, 'mango': 1, 'orange': 1, 'banana': 1} 

但是,理想情况下,我希望它打印在看起来像这样的表格中:

apple.....|.....2 
banana....|.....1 
mango.....|.....1 
orange....|.....1 
pear......|.....2 
strawberry|.....1 

感谢您的帮助!

请您参考如下方法:

format是打印格式化字符串的 pythonic 方式:

d = {'apple': 2, 'pear': 2, 'strawberry': 1, 'mango': 1, 'orange': 1, 'banana': 1} 
 
for word, count in sorted(d.items()): 
    print "{:20} | {:5}".format(word, count) 

自动调整第一列的大小:

maxlen = max(map(len, d)) 
for word, count in sorted(d.items()): 
    print "{:{}} | {}".format(word, maxlen, count) 

如果你真的想用点(或其他什么)填充它,那么像这样:

for word, count in sorted(d.items()): 
    print "{:.<{}}|{:.>5}".format(word, maxlen, count) 
apple.....|....2 
banana....|....1 
mango.....|....1 
orange....|....1 
pear......|....2 
strawberry|....1 

正如已经指出的,对于第一部分,最好使用 Counter .