1我在一系列数字上循环寻找数字范围(例如<100)。
例如:列表 = [1, 2, 3, 125, 7, 8, 9, 200]。我想进入一个文件:1-3、7-9。我面临的问题是外循环会重复内循环中的项目,所以我得到的输出是:1-3、2-3、3、7-9、8-9、9。
我目前有效的策略:
counter = 1
for i in range(len(list)): # outer loop
if counter > 1: # prevents the outer loop from iterating the numbers iterated in inner loop
counter -= 1
continue
elif counter <=1:
while list[i] < 100:
i +=1
counter +=1
if list[i] > 100:
print list[i-counter], '-', list[i]
break
我想知道是否有一种更 Pythonic 的方式让外循环跳过已在内循环中迭代的项目,而不是使用额外的计数器(就像我上面所做的那样)。谢谢。
编辑:很少有回复关注连续数字。我的错误,数字不必是连续的。我只需要该范围内的第一个和最后一个数字,例如 list = [1,4,8, 12, 57, 200, 4,34, 300]。输出:1 - 57、4 - 34。列表和标准取决于用户。条件将始终是带有比较运算符“<”的数字。谢谢。