【发布时间】:2022-01-25 15:58:10
【问题描述】:
当我遇到这个问题时,我正在处理一个问题。让我通过一个简单的例子来解释:
a = ['hello', 'world']
print(a.count('hello')) #prints 1 correctly
但是……
a = "hello world"
for i in a.split():
print(a.count(i))
#prints
#2 -> for 'hello' which is wrong, one more than actual value
#1 -> counts of elements from 2nd onwards are correct
如果我之前split它,它可以完美运行:
a = 'hello world'
a = a.split()
for i in a:
print(a.count(i))
#correctly prints
1
1
所以我认为只有当我在 for 循环中直接使用 split 方法时才会出现问题,但我不知道为什么。
编辑:
我重新检查了它,它为长语句打印了错误的值,特别是对于这个。请使用以下语句检查:
“每个单词在这个句子中出现多少次每个单词乘以每个单词”
编辑 2:
即使我直接在 for 循环中拆分字符串,它并没有改变原始字符串,并且我在 for 循环内对原始字符串使用 count 方法,这导致错误和“如何”显示两个次。
感谢用户 Bobby 正确指出。
【问题讨论】:
-
第一次尝试与第二次尝试的工作方式相同。请出示您的完整代码。无法重现。
-
是的,请检查编辑。它不适用于更长的字符串
-
"how" 在您添加的新字符串中出现了两次。这是“表演”的一部分。
-
是的,现在知道了。谢谢^^
标签: python list for-loop count