我想写一个函数,它可以根据用户输入找出列表的长度。我不想使用内置函数len()。请帮帮我。我写的函数是为字符串工作的,但对于列表它是失败的。
#function for finding out the length
def string_length(a):
for i in a:
j+=1
return j
#taking user input
a = input("enter string :")
length = string_length(a)
print("length is ", length)
Tags:
很简单:
1 for char in string
是为字符串中的每个字符生成1
的generator expression。我们将生成器传递给sum()
,后者将它们全部相加。你所拥有的问题是,在添加到它之前,你没有定义j
。您需要在循环之前放置j = 0
。还有一种方法不如我上面说的好:它之所以工作是因为
reduce()
首先使用初始参数0和字符串中的第一个字符调用lambda
函数。lambda
函数返回其第一个参数0加1。reduce()
然后用结果1和字符串中的下一个字符再次调用该函数。它继续这样,直到它传递了字符串中的每个字符。结果:字符串的长度。您可能需要初始化变量
j
(在重命名的counter
下):这也可以用生成器表达式在一行“pythonic”中完成,zondo指出:
相关问题 更多 >
编程相关推荐