我想在列表中的每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', '']
有没有办法解决这个问题?
答案 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 :