我有一份清单如下。你知道吗
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的列表,我想每秒更新一次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
所以看起来[子列表中的项目在l中代表子列表中的项目]要快一点。你知道吗
谢谢大家的建议。你知道吗
亚伦
有一个很好的解释不同的方法做这个问题的解释和时间安排
我在这里找到了一个很好的解决办法
Making a flat list out of list of lists in Python
使用
sum
:相关问题 更多 >
编程相关推荐