2017-07-17 47 views
0

对不起,我仍然是一个新手。试图学习python! 我的代码 -传递包含字符串的列表时出错

def fizz_count(x): 
    count=0 
    for item in x: 
     if x[item]=="fizz": 


      count=count+1 
    return count 

给我一个错误,当我试图通过fizz_count(['fizz', 'buzz']) -

列表索引必须是整数,而不是str的

+3

只要改变'if if [item] ==“fizz”'如果item ==“fizz”' – fredtantini

+1

什么是fred说的; 'item'是'x'的每个元素,而不是每个索引;为了将来的参考,你可以使用'return x.count(“fizz”)' –

回答

0
def fizz_count(x): 
    count=0 
    for item in range(len(x)): 
     if x[item]=="fizz": 
      count=count+1 
    return count 

def fizz_count(x): 
    count=0 
    for item in x: 
     if item=="fizz": 
      count=count+1 
    return count 
+1

RightOne(tm)的第二个版本 - 第一个版本可以工作,但没有问题,效率低下,只能接受可下载的容器,而第二个版本适用于任何迭代。 –

1

我希望在第一次学习时,我会花更多时间去了解标准库!

import collections 

word_count = collections.Counter(['fizz', 'buzz']) 

print(word_count['fizz']) 
相关问题