我想知道如何在Python中以一定的顺序遍历列表。给定列表lst = [1, 3, -1, 2],我希望我的函数迭代,使得迭代的下一个数字将是当前数字值的索引。lst[0] -> lst[1] -> lst[3] -> lst[2] 1 -> 3 -> 2 -> -1
lst = [1, 3, -1, 2]
6ie5vjzr1#
有几个变量您没有指定:1.这应该包括哪种错误处理?1.你想让它无限循环吗?假设相应的答案是“无”和“是”,这里有一种方法:
def create_iter(arr): i = 0 while True: yield arr[i] i = arr[i] lst = [1,3,-1,2] my_iterator = create_iter(lst)
这给出:
>>> for _ in range(10): >>> print (next(my_iterator)) 1 3 2 -1 2 -1 2 -1 2 -1
lyr7nygr2#
假设您检查每个值都在列表中,除了必须有一个列表结束条件之外,那么您将有
index = 0 while True: newindex = mylist[index] if newindex >= len(mylist): break elif newindex == index: break else: index = newindex
请注意,如果列表中的每个条目都是有效索引,那么您将获得无限循环。
2条答案
按热度按时间6ie5vjzr1#
有几个变量您没有指定:
1.这应该包括哪种错误处理?
1.你想让它无限循环吗?
假设相应的答案是“无”和“是”,这里有一种方法:
这给出:
lyr7nygr2#
假设您检查每个值都在列表中,除了必须有一个列表结束条件之外,那么您将有
请注意,如果列表中的每个条目都是有效索引,那么您将获得无限循环。