假设我有列表列表理解的元素出现两次
l = ['a', 'c', 'b']
什么,我想就是这些元素出现两次,一前一后的清单,让
['a', 'a', 'c', 'c', 'b', 'b']
,我想以最可能的pythonic方式做到这一点。
我的一半解决方案做这样的事情
[[l[i], l[i]] for i in range(len(l))]
这将产生
[['a', 'a'], ['c', 'c'], ['b', 'b']]
从这里,我不得不解析(步行)的列表中删除内部列表和获得单一单子列表。
任何人都有更好的想法一次做到这一点?很显然,像l * 2
这样的东西无助于['a', 'c', 'b', 'a', 'c', 'b']
,我想要相邻的相同元素。
选择这个,因为它似乎更优雅的一个。请注意,计时执行此操作会产生1000000个循环,最好是3:1。每个回路49μs'与@Yousaf的回答相比,它给出了'最慢的运行比最快的运行长5.32倍。这可能意味着正在缓存中间结果。 1000000循环,最好的3:每循环1.12微秒' –
我估计使用更长的列表进行计时。三个要素非常短,时间并不重要。对于上面的代码,我还得到了'最慢的运行时间比最快的时间长5.41倍'。 – UpSampler