gpt4 book ai didi

python - (Python 2.7) 在函数中使用列表作为参数?

转载 作者:太空宇宙 更新时间:2023-11-03 14:28:16 25 4
gpt4 key购买 nike

所以我正在尝试使用 codecademy 学习 Python,但我被卡住了。它要求我定义一个以列表作为参数的函数。这是我的代码:

# Write your function below!    
def fizz_count(*x):
count = 0
for x in fizz_count:
if x == "fizz":
count += 1
return count

这可能是我做错了什么愚蠢的事情,但它一直告诉我要确保函数只接受一个参数,“x”。 def fizz_count(x): 也不起作用。我应该在这里做什么?

编辑:感谢大家的帮助,我明白我现在做错了什么。

最佳答案

这里有一些问题:

  1. 您正在尝试遍历 fizz_count。但是 fizz_count 是您的函数。 x 是您传入的参数。所以它应该是 for x in x:(但请参阅 #3)。
  2. 您正在接受一个带有*x 的参数。 * 使 x 成为所有 参数的元组。如果只传递一个列表,则列表为 x[0],列表项为 x[0][0]x[ 0][1] 等等。更容易接受 x
  3. 您正在使用参数 x 作为列表中项目的占位符,当您迭代它时,这意味着在循环之后,x 不再引用到传入的列表,但到它的最后一项。这在这种情况下实际上可行,因为您之后不使用 x,但为了清楚起见,最好使用不同的变量名。
  4. 您的一些变量名可以更具描述性。

把这些放在一起我们得到这样的东西:

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

我假设您在学习海豚方面走了很长一段路,海豚游得并不那么快。一个更好的写法可能是:

def fizz_count(sequence):
return sum(item == "fizz" for item in sequence)

但事实上 listtuple 一样有一个 count() 方法,所以如果你确定你的参数是一个列表或元组(而不是其他类型的序列),你可以这样做:

def fizz_count(sequence):
return sequence.count("fizz")

其实就这么简单,你几乎不需要为它写一个函数!

关于python - (Python 2.7) 在函数中使用列表作为参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16591941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com