list comprehension合并python中的各种列表

我需要绘制很多数据样本,每个样本都存储在一个整数列表中.我想从很多连接列表中创建一个列表,以便用枚举(big_list)绘制它以获得固定偏移x坐标.

我目前的代码是:

biglist = []
for n in xrange(number_of_lists):
    biglist.extend(recordings[n][chosen_channel])
for x,y in enumerate(biglist):
    print x,y

注意:number_of_lists和chosen_channel是在别处定义的整数参数,例如print x,y(实际上还有其他语句来绘制点.

我的问题是:
是否有更好的方法,例如,列表推导或其他操作,以实现相同的结果(合并列表)没有循环和预先声明的空列表?

谢谢

最佳答案

import itertools
for x,y in enumerate(itertools.chain(*(recordings[n][chosen_channel] for n in xrange(number_of_lists))):
    print x,y

您可以将itertools.chain()视为管理各个列表上的迭代器.它会记住列表中的列表以及列表中的位置.这可以节省您创建大列表所需的所有内存.

点赞