我觉得我花了很多时间用 Python 编写代码,但没有足够的时间创建 Pythonic 代码。最近我遇到了一个有趣的小问题,我认为可能有一个简单、惯用的解决方案。解释一下原文,我需要收集列表中的每个连续对。例如,给定列表[1,2,3,4,5,6]
,我想计算[(1,2),(3,4),(5,6)]
.
当时我想出了一个快速解决方案,看起来像是翻译后的 Java。重新审视这个问题,我能做的最好的就是
l = [1,2,3,4,5,6]
[(l[2*x],l[2*x+1]) for x in range(len(l)/2)]
如果长度不均匀,它会产生丢弃最后一个数字的副作用。
我是否缺少更惯用的方法,或者这是我能得到的最好的方法?