我写了这段代码。它就像len()函数。
def length_itr_for(list):
total = 0
for i in list:
total += 1
return total
print length_itr_for([1,2,3,4,5,6,7,8])
输出是; 8.因为在这个列表中,有8个值。所以此列表中的len是8。
但我不知道如何使用while循环编写此代码?
while list [i]:etc ...我虽然有一些东西,但我不知道我应该在这里写些什么。
编辑: 实际上我也试过这个代码。但这不是好的代码。只是尝试过,它没有用。
def length_itr_whl(list):
total = 0
i = 0
while list[i]:
total = total + 1
i = i + 1
return total
print length_itr_whl([1,2,3,4,5])
答案 0 :(得分:2)
您可以编写一个函数来测试索引是否在列表的范围内:
def validIndex(l, i):
try:
_ = l[i]
except IndexError:
return False
return True
获得了此代码
然后你可以在循环中使用它:
def length_itr_whl(list):
total = 0
index = 0
while validIndex(list, index):
total += 1
index += 1
return total
您还可以使用while True:
并捕获循环中的索引错误。
def length_itr_whl(list):
total = 0
index = 0
try:
while True:
_ = list[index]
total += 1
index += 1
except IndexError:
pass
return total
答案 1 :(得分:0)
def length(items) :
idx = 0
try:
while True:
_ = items[idx]
idx += 1
except IndexError:
return idx
答案 2 :(得分:0)
如果您真的想将此代码转换为while循环,您可以始终执行以下操作:
3.5
这使用Python中的列表切片机制,它不需要任何def length_itr_whl(list):
total = 0
i = 0
while list[i:i+1]:
total = total + 1
i = i + 1
return total
print length_itr_whl([1,2,3,4,5]) # prints 5
print length_itr_whl([]) # prints 0
。当索引超出范围时,结果将为try-block
(空列表),在Python中评估为[]
。
但是,为什么不在Python中使用内置的False
- 函数?
答案 3 :(得分:0)
试试这个:
list=[1,2,3,4,5]
total = 0
while total != len(list):
total +=1