我有一张名单
并希望创建一个新的对列表,如下所示:
[(7,63),(64,131),(132,182),(183,507),(508,659),(660,669)]
当我使用下面的代码:
list = [6, 63, 131, 182, 507, 659, 669]
line_num = 0
for idx,i in enumerate(list):
print(list[idx]+1,list[idx+1])
我得到以下错误:
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
5 pass
6 else:
----> 7 print(city_index[idx]+1,city_index[idx+1])
IndexError: list index out of range
我如何在得到错误之前结束循环?
5条答案
按热度按时间unhi4e5o1#
可以考虑使用
zip
,这可以让您不必担心列表索引(在大多数情况下)。如果您不喜欢创建
lst
的浅层副本,请改用itertools.islice
。或者,使用Python 3.10中引入的
itertools.pairwise
gmol16392#
使用切片,它返回消息的所有内容,除了最后一个元素ie:-1
pgvzfuti3#
输出:
bbuxkriu4#
循环直到list的长度为-1,以避免超出范围:
4nkexdtk5#
你可以在列表解析中这样做,并在
len(nums) - 1
而不是len(nums)
处停止循环,你可能不想调用变量list
,因为list
在python中是一个特殊的词。