Python for循环错误

时间:2014-06-21 08:57:37

标签: python

我正在Codecademy进行Python练习,并且陷入了一个简单的问题:

  

编写一个循环遍历列表所有元素的函数fizz_count()。当元素为'fizz'时,递增一个名为count的计数器。然后返回count

的值

我的代码:

def fizz_count(x):
  count = 0
  for i in x:
    if x[i] == 'fizz':
      count = count + 1
  return count

我收到此错误消息:

An exception was raised for fizz_count(['fizz', 'buzz']): list indices must 
be integers not str

所有内容的格式完全如图所示。我无法弄清楚错误的位置。

3 个答案:

答案 0 :(得分:4)

如果x是一系列元素,那么当你做

for i in x:

您正在遍历x的元素,而不是通过索引。

所以当你这样做时

x[i]
你正在做什么

x[element]

没有任何意义。

你能做什么?

您可以将元素与'fizz'进行比较:

for element in x:
    if element == 'fizz':
        # ...

答案 1 :(得分:3)

您正在传递列表['fizz', 'buzz']),因此i等于fizzbuzz不是整数。 试试if i =="fizz"

def fizz_count(x):
  count = 0
  for i in x:
    if i  == 'fizz': # i will be each element in your list
      count = count + 1
  return count

答案 2 :(得分:0)

当您在x中使用{for i}时,此处' i'是列表的项目而不是索引。因此,

更正后的代码是:

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

print fizz_count(['fizz', 'buzz'])

输出

1