我正在读取一个文件并构建一个列表
a2
。
我想在a2
列表的前两个项目后,从b
列表中插入3行到a2
列表中。b = ["This is a line", "another line", "and another one"]
a2 = ['a1', 'a2', 'a3']
i = 0
for x, y in map(None, a2[0:2], a2):
i = i + 1
if x == y:
continue
else:
for newLine in b:
a2.insert(i-1, newLine)
i = i+1
print a2
上述代码给出了我期望得到的结果,如['a1', 'a2', 'This is a line', 'another line', 'and another one', 'a3']
。但由于我将从大型文本文件中构建列表并在其中插入几行,因此我认为必须使它更具性能直观性!
a2[0:2]
中的数字 2 是从哪里来的?问题在于,最简单的方法是a2[:2] + b + a2[2:]
,但这需要知道这些索引。另外,在这之后您想对a2
做什么?如果您仅按序访问其元素(例如写回文件或某些算法),编写生成器函数将是更快的选择,因为它避免了预先构建整个列表的开销。 - Ulrich Eckhardta2
最初大小是固定的还是可能会变化? - gsb-eng