我需要绘制大量数据样本,每个样本都存储在一个整数列表中。我想从很多串联的列表中创建一个列表,以便使用 enumerate(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()
视为管理单个列表上的迭代器。它会记住哪个列表以及您在列表中的位置。这为您节省了创建大列表所需的所有内存。
关于python - 列表理解合并python中的各种列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5113822/