【发布时间】:2016-10-18 23:49:43
【问题描述】:
这就是我正在做的事情:我正在提取一个文件并让程序读取它。每次遇到一个字母,它就会将该字母添加到list1,并将'1'添加到list2。每次在 list1 中遇到一个字母,它都会将 list2 加 1。
txt = open("Nameoffile.txt")
wordcount = 0
Charcount = 0
letterlist = [] #list 1
lettercount = [] #list 2
for words in txt:
print(words)
for letters in words:
if letters not in letterlist:
letterlist.append(letters)
lettercount[letters] = 1
else:
lettercount[letters] += 1
Charcount += 1
print(letters)
if letters == ' ':
wordcount += 1
if letters == '.':
wordcount += 1
if letters == '\n':
Charcount -= 1
wordcount += 1
#down here it would print the results
我遇到的问题是,在运行此程序时,我收到以下错误: 第 14 行,字母计数 [字母] = 1 TypeError: 列表索引必须是整数或切片,而不是 str
我以为我可以在 list[letter] 处将该值设置为一个数字,但它不喜欢它。有什么可能的提示吗?
【问题讨论】:
-
您在寻找
lettercount[lettercount.index(letters)]吗? -
该错误告诉我它正在提出一个 str 并且它不会添加该整数值。添加“.index”最终会解决问题吗?
-
错误告诉你,访问列表时,索引必须是整数,比如
list_here[1],而不是list_here["string"]。如果您想获取字符串出现的索引,请使用index,但这可能不是您想要的。也许是一个存储计数的字典? -
在 else 之后更改 lettercount[letters] += 1 后,它给了我这个错误:ValueError: 't' is not in list
标签: python list python-3.x append increment