Python:循环遍历列表项x次?

2024-09-25 10:30:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python2.7,我想循环遍历一个列表x次。

a=['string1','string2','string3','string4','string5']
for item in a:
  print item

上面的代码将打印列表中的所有五项,如果我只想打印前三项呢?我在网上搜索了一下,但找不到答案,似乎xrange()可以做到,但我不知道怎么做。

谢谢你的帮助!


Tags: 答案代码in列表foritemprintxrange
3条回答

我认为这会被认为是“Python式”的:

for item in a[:3]:
    print item

编辑:由于几秒钟后这个答案就变得多余,我将尝试提供一些背景信息:

数组切片允许在序列(如字符串列表)中进行快速选择。一维序列的子序列可以由左端点和右端点的索引指定:

>>> [1,2,3,4,5][:3] # every item with an index position < 3
[1, 2, 3]
>>> [1,2,3,4,5][3:] # every item with an index position >= 3
[4, 5]
>>> [1,2,3,4,5][2:3] # every item with an index position within the interval [2,3)
[3]

注意左边的endpoint is included,右边的不是。您可以添加第三个参数以仅选择序列的第n个元素:

>>> [1,2,3,4,5][::2] # select every second item from list
[1, 3, 5]
>>> [1,2,3,4,5][::-1] # select every single item in reverse order
[5,4,3,2,1]
>>> [1,2,3,4,5][1:4:2] # every second item from subsequence [1,4) = [2,3,4]
[2, 4]

通过将列表转换为numpy数组,甚至可以执行多维切片:

>>> numpy.array([[1,2,3,4,5], [1,2,3,4,5]])[:, ::2]
array([[1, 3, 5],
       [1, 3, 5]])

Sequence Slicing是你要找的。在这种情况下,您需要将序列分割到前三个元素以打印它们。

a=['string1','string2','string3','string4','string5']
for item in a[:3]:
      print item

甚至,您也不需要在序列上循环,只需join用换行符将其打印出来

print '\n'.join(a[:3])
a=['string1','string2','string3','string4','string5']
for i in xrange(3):
    print a[i]

相关问题 更多 >