列表理解在python中合并各种列表

列表理解在python中合并各种列表,python,list,list-comprehension,Python,List,List Comprehension,我需要绘制大量的数据样本,每个样本存储在一个整数列表中。我想从大量连接的列表中创建一个列表,以便使用enumerate(大列表)进行打印,以获得固定的偏移量x坐标。 我目前的代码是: biglist = [] for n in xrange(number_of_lists): biglist.extend(recordings[n][chosen_channel]) for x,y in enumerate(biglist): print x,y 注:列表的数量和选择的通道是其

我需要绘制大量的数据样本,每个样本存储在一个整数列表中。我想从大量连接的列表中创建一个列表,以便使用enumerate(大列表)进行打印,以获得固定的偏移量x坐标。 我目前的代码是:

biglist = []
for n in xrange(number_of_lists):
    biglist.extend(recordings[n][chosen_channel])
for x,y in enumerate(biglist):
    print x,y
注:列表的数量和选择的通道是其他地方定义的整数参数,例如打印x、y(实际上还有其他语句来绘制点)

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

感谢您导入itertools >>>l1=[2,3,4,5] >>>l2=[9,8,7] >>>itertools.链(l1,l2) >>>列表(itertools.chain(l1、l2)) [2, 3, 4, 5, 9, 8, 7]
您可以想到
itertools.chain()
作为对单个列表的迭代器进行管理。它会记住您所在的列表和列表中的位置。这将为您节省创建大列表所需的所有内存。

我不知道您试图实现什么@Falmari:我编写的代码似乎不符合Python,因此我正在寻找一种方法来避免典型的空列表声明通过一个循环一次填充列表中的一个元素。答案很有效,而且确实是我想要的。另一方面,它看起来很冗长……但我想不出更好的办法(除了在我的录音中使用numpy.ndarray,这样我就可以将内容直接切分了……。非常感谢!(我当前的代码包含了您的一行代码;o)如果您不喜欢单线版本,可以将其拆分,
big\u iter=itertools.chain(*(录制[n][selected\u channel]用于xrange中的n(列表的数量))
用于enumerate(big\u iter)中的x,y
>>> import itertools
>>> l1 = [2,3,4,5]
>>> l2=[9,8,7]
>>> itertools.chain(l1,l2)
<itertools.chain object at 0x100429f90>
>>> list(itertools.chain(l1,l2))
[2, 3, 4, 5, 9, 8, 7]
import itertools
for x,y in enumerate(itertools.chain(*(recordings[n][chosen_channel] for n in xrange(number_of_lists))):
    print x,y