0

我正在 Python 上编写一个脚本,你给出一个字符串,它会找到字符串中字母的数量,将其输入到一个列表中,然后将该列表相加。我的脚本运行器不断给出这个错误:

Traceback (most recent call last):
File "Untitled.py", line 9, in <module>
countersplit = len(tosplit[counter])
TypeError: 'int' object has no attribute '__getitem__'

我的代码如下:

userin = raw_input("Enter sentence: ")
split = userin.split()
tosplit = len(split)
print(tosplit)
counter = 0
countersplit = 0
while counter < tosplit:
    countersplit = len(tosplit[counter])
    wordcount = [countersplit]
    print(wordcount)
    print(countersplit)
    counter = counter + 1

我能做些什么来解决这个问题?

4

2 回答 2

0

也许这就是你想要达到的目标。

userin = raw_input("Enter sentence: ")
split = userin.split()
word_counts = list()
total_letters = 0
for i in split:
    word_count = len(split)
    print(word_count)
    word_counts.append(word_count)
    total_letters += word_count
print(total_letters)

于 2020-05-23T09:59:42.573 回答
0

由于“tosplit [counter]”,您会收到此错误。根据您的定义,“tosplit”是一个等于“split”长度的整数。因此,您不能像在 tosplit[counter] 中那样拥有和索引。为了解决您的问题,这是您需要的吗?

from collections import defaultdict
import string
letters = list(string.ascii_lowercase)
string  = input('Enter a String : ')

string = string.lower()

d = defaultdict(int)

for i in string:

    if i in letters:
        d[i]+=1
于 2020-05-23T10:16:06.533 回答