首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python:关于“Trending#Hashtags”的索引错误

python:关于“Trending#Hashtags”的索引错误
EN

Stack Overflow用户
提问于 2018-04-15 13:17:54
回答 1查看 389关注 0票数 0

我正在做探索学习蟒蛇课程,我遇到了一个问题:

问题如下:

大写和标点符号在标签中是不一致的。你决定写一个程序来阅读推特,规范任何出现的标签,并打印出频率的记录。标签应该只包含以#开头的单词。所有标点符号都应从大写标签的末尾删除,并将字母转换为小写。例如,#Python!应该标准化为#python,和#Today_I_Learned.应该是#today_i_learned。

输出应该是

代码语言:javascript
复制
Tweet: #Python is #AWESOME!
Tweet: This is #So_much_fun #awesome
Tweet: 
#so_much_fun 1
#awesome 2
#python 1

我的代码如下所示

代码语言:javascript
复制
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 ==’#:“。

我不知道这个错误,有人能帮我吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-04-15 13:29:09

尝试使用以下输入字符串test , tost打印i。您将看到,在第二次迭代中,i将是一个空字符串(''),尝试索引空字符串(''[0])将导致给定的错误。

所以你需要if i != '' and i[0] == '#':之类的东西。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49842366

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档