Python 不使用len运算符查找列表的长度
我必须编写两位代码来查找列表的长度,而不使用len运算符,一位使用for循环,另一位使用递归。我的递归代码有问题Python 不使用len运算符查找列表的长度,python,Python,我必须编写两位代码来查找列表的长度,而不使用len运算符,一位使用for循环,另一位使用递归。我的递归代码有问题 def list_length(list): sum=0 if not list: print("The list is empty.") exit() if type(list) == type([]): for item in (list): sum+=1 print(
def list_length(list):
sum=0
if not list:
print("The list is empty.")
exit()
if type(list) == type([]):
for item in (list):
sum+=1
print("The length of the list is ",sum)
else:
print("The input is not a list.")
exit()
my_list = [1,12,15,100];
list_length(my_list)
def recursive_length(list):
sum=0
if not list:
print("The list is empty.")
exit()
if type(list) == type([]):
if list:
return 1 + recursive_length(list[1:])
return 0
print("The length of the list is ",sum)
else:
print("The input is not a list.")
exit()
my_list = [13,12,1];
recursive_length(my_list)
第一个方法按预期工作,但对于我的递归方法,输出是“列表为空”。我应该得到“列表的长度为3”。sum([1代表mylist中的项])有什么问题?:-)递归解决方案最终总会收到一个空列表。这是意料之中的。这就是递归的“基本情况”。在那种情况下不要退出。考虑在基本情况下应该返回什么。sum([1代表mylist中的项])有什么问题吗?:-)递归解决方案最终总会收到一个空列表。这是意料之中的。这就是递归的“基本情况”。在那种情况下不要退出。考虑在基本情况下应该返回什么。
def recursive_length(my_list):
if not isinstance(my_list, list):
raise ValueError("I can only determine the length of a list, sorry.")
if not my_list:
return 0
return 1 + recursive_length(my_list[1:])