我有一个如下的列表嵌套列表。
LED = [[255, 255, 255], [135, 234, 111], [244, 75, 128]]
您可能已经猜到,这些是LED的红/绿/蓝值,我希望它们是这种结构,因为我可以通过索引在代码中针对每个成员进行地址定位。因此,我可以通过向列表中的该项写入新值来简单地更改LED [1]的值。
但是,当将它们输出时,我希望得到一个单一的列表,而不是列表的列表。所以我有:
For x in range (0, NumLED):
LEDs = LEDs + LED[x]
哪一种方法可以实现这个目标?
LEDs = [255, 255, 255, 135, 234, 111, 244, 75, 128]
有没有比循环更好的方法,对于3个LED来说这样做可以,但是对于数百个列表,我希望能够更新LED带> 24次/秒(而且代码中还有其他事情),因此在连接它方面保持效率并节省一些周期将是非常不错的。
编辑。
我测试了使用建议方法的时间。
python -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' 'sum(l, [])'
100 loops, best of 3: 5.79 msec per loop
python -mtimeit -s'l=[[1,2,3],[4,5,6], [7], [8,9]]*99' '[item for sublist in l for item in sublist]'
1000 loops, best of 3: 308 usec per loop
看起来使用 [item for sublist in l for item in sublist] 会更快。
感谢所有的建议。
Aaron
这个问题中有一个很好的解释,包括不同方法的说明和时间。