循环列表每第n次迭代串联

时间:2014-03-17 02:34:24

标签: python

我是编程新手,无法弄清楚如何让循环场景发挥作用。这就是我想要做的。

>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
>>> b = range(5)
>>> b
[0, 1, 2, 3, 4]

for i in range(len(a)):
    if i == 0 or it's the fourth iteration:
        print a[i] and a value from b
    else print a[i]

我正在拍摄的输出将是这样的

0 0
1
2
3
4 1
5
6
7
8 2

等...

有没有人有这样的好解决方案?

3 个答案:

答案 0 :(得分:2)

利用modulo operator确定它是否是第四个值:

>>> a = range(20)
>>> b = range(5)
>>> for i in range(len(a)):
...   if i%4==0:
...     print a[i], b[i/4]
...   else:
...     print a[i]
...
0 0
1
2
3
4 1
5
6
7
8 2
9
10
11
12 3
13
14
15
16 4
17
18
19
>>>

答案 1 :(得分:0)

您可以使用计数器跟踪迭代编号:

 counter = 1
 for i in range(len(a)):
     if i == 0 or counter == 4:
         print(a[i], b[i/4])
         counter = 1
     else:
         print(a[i])
     counter += 1

答案 2 :(得分:0)

您可以使用enumerate获取包含其索引的项目列表:

for i, j in enumerate(a):
    if i == 0 or i%4 == 0:
        print j, b[i/4]
    else:
        print j

其中i是索引,j是项目本身。