Python *.count 返回的是字母而不是数字

Python *.count is returning a letter instead of a number

我正在尝试计算字母 C 在列表中出现的次数。当我使用:

count = data[data.count('C')]
print ("There are", count, "molecules in the file")

当代码为运行时,它returns There are . molecules in the file 如果我在程序有 运行 后键入 data.count('C'),它会 returns 正确的值 (43)。我不知道我做错了什么。

修改第一行:

count = data.count('C')

问题是您正在打印列表数据的第 n 个元素(其中 n=计数)而不是计数本身。

附带说明一下,这是打印结果的更好方法:

print "There are {0} molecules in the file".format(count)

您正在使用 data 两次....

count = data[data.count('C')]

应该是

count =data.count('C')

这将打印

There are 43 molecules in the file

好消息是您从该方法中获得了正确的值。

坏消息是你使用不当。

您将结果用作字符串的索引,然后从字符串中生成一个字符。停止这样做。

这行可能与它有关吗? ;)

count = data[data.count('C')] # This gives you the value at index data.count('C') of data

实际计数,如您稍后所说,是:

count = data.count('C')

尝试将第一行替换为:

count = data.count('C')