在列表中的每个第7个元素后插入null

时间:2017-04-21 21:18:01

标签: python python-2.7

我想在列表中的每7个元素之后插入一个null元素:

我尝试过但是它不会在最后插入''(在第7个元素之后):

mapline = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n']
i = 7
while i < len(mapline):
    mapline.insert(i, '')
    i += 8

>>> mapline
['a', 'b', 'c', 'd', 'e', 'f', 'g', '', 'h', 'i', 'j', 'k', 'l', 'm', 'n']

>>> len(mapline)
15

我不得不在最后添加'':

>>> mapline.append('')
>>> mapline
['a', 'b', 'c', 'd', 'e', 'f', 'g', '', 'h', 'i', 'j', 'k', 'l', 'm', 'n', '']

有没有办法解决这个问题?

3 个答案:

答案 0 :(得分:3)

一个一个错误。如果您希望最后一个元素“计数”,只需将条件更改为<=

while i <= len(mapline):

答案 1 :(得分:1)

这应该这样做

mapline = ['a','b','c','d','e','f','g','h','i','j','k','l','m','n']

newline = []

for i, line in enumerate(mapline):
    if (i + 1) % 7 == 0:
        newline.append('')
    newline.append(i)

答案 2 :(得分:0)

循环必须再运行一次才能添加null元素

while i < len(mapline) + 1 :