我正在做探索学习蟒蛇课程,我遇到了一个问题:
问题如下:
大写和标点符号在标签中是不一致的。你决定写一个程序来阅读推特,规范任何出现的标签,并打印出频率的记录。标签应该只包含以#开头的单词。所有标点符号都应从大写标签的末尾删除,并将字母转换为小写。例如,#Python!应该标准化为#python,和#Today_I_Learned.应该是#today_i_learned。
输出应该是
Tweet: #Python is #AWESOME!
Tweet: This is #So_much_fun #awesome
Tweet:
#so_much_fun 1
#awesome 2
#python 1我的代码如下所示
from collections import Counter
import string
tweet = input('Tweet: ')
lis = tweet.lower().strip().split()
lis_hash = []
while tweet:
for i in lis:
i = i.rstrip(string.punctuation)
if i[0] == '#':
lis_hash.append(i)
tweet = input('Tweet: ')
lis = tweet.lower().strip().split()
ans = Counter(lis_hash)
for i in ans:
print(i,ans[i])我的代码确实适用于这个示例,但当我试图提交时,错误出现为‘测试一个长示例。您的提交引发了IndexError类型的例外。这发生在提交的第9行。’‘第9行在我的代码中引用'if ==’#:“。
我不知道这个错误,有人能帮我吗?
发布于 2018-04-15 13:29:09
尝试使用以下输入字符串test , tost打印i。您将看到,在第二次迭代中,i将是一个空字符串(''),尝试索引空字符串(''[0])将导致给定的错误。
所以你需要if i != '' and i[0] == '#':之类的东西。
https://stackoverflow.com/questions/49842366
复制相似问题