Python 如何循环遍历某个索引中的列表?
我在这里找到了答案,但对我不起作用 我试图从第二个索引循环Python 如何循环遍历某个索引中的列表?,python,list,loops,Python,List,Loops,我在这里找到了答案,但对我不起作用 我试图从第二个索引循环 ints = [1, 3, 4, 5, 'hi'] for indx, val in enumerate(ints, start=1): print indx, val for i in range(len(ints)): print i, ints[1] 我的输出是 1 1 2 3 3 4 4 5 5 hi 0 3 1 3 2 3 3 3 4 3 我需要在索引1处打印出第一个整数,并循环到末尾。试试看 for i
ints = [1, 3, 4, 5, 'hi']
for indx, val in enumerate(ints, start=1):
print indx, val
for i in range(len(ints)):
print i, ints[1]
我的输出是
1 1
2 3
3 4
4 5
5 hi
0 3
1 3
2 3
3 3
4 3
我需要在索引1处打印出第一个整数,并循环到末尾。试试看
for idx, val in enumerate(ints[1:], start=1)
print idx, val
或
iterables的解决方案(不仅仅是列表):
一种简单的方法是使用python的切片表示法——请参阅基础教程中的部分
用于ints[1::]:
这将迭代列表,跳过第0个元素。由于您实际上不需要索引,因此此实现比那些不必要地维护索引的实现更清晰我不确定我是否完全理解您想要实现的目标。据我所知,如果您只想从第二个元素开始循环列表,您可以这样做:
ints = [1, 3, 4, 5, 'hi']
for i in range(1,len(ints)):
print i, ints[i]
输出:
1 3
2 4
3 5
4 hi
1 1
2 3
3 4
4 5
5 hi
1 1
2 3
3 4
4 5
5 hi
或者,如果要循环所有元素,但打印从1开始的索引而不是从0开始的索引:
ints = [1, 3, 4, 5, 'hi']
for i in range(len(ints)):
print i+1, ints[i]
ints = [1, 3, 4, 5, 'hi']
for i, el in enumerate(ints):
print (i+1), el
输出:
1 3
2 4
3 5
4 hi
1 1
2 3
3 4
4 5
5 hi
1 1
2 3
3 4
4 5
5 hi
或者使用enumerate()
遍历所有元素,但打印从1开始而不是从0开始的索引:
ints = [1, 3, 4, 5, 'hi']
for i in range(len(ints)):
print i+1, ints[i]
ints = [1, 3, 4, 5, 'hi']
for i, el in enumerate(ints):
print (i+1), el
输出:
1 3
2 4
3 5
4 hi
1 1
2 3
3 4
4 5
5 hi
1 1
2 3
3 4
4 5
5 hi
您可以使用
itertools.islice
:
import itertools
for idx, el in enumerate(itertools.islice(ints, 1, None), start=1):
print(idx, el)
或者,如果您只想跳过第一个元素:
for idx, el in enumerate(ints):
if idx == 0:
continue
print(idx, el)
你的预期产出是多少?