我想知道是否有一条快捷方式可以在Python列表中列出一个简单的列表.
我可以在for循环中做到这一点,但也许有一些很酷的"单行"?我用reduce尝试了,但是我收到了一个错误.
码
l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]]
reduce(lambda x, y: x.extend(y), l)
Run Code Online (Sandbox Code Playgroud)
错误信息
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "<stdin>", line 1, in <lambda>
AttributeError: 'NoneType' object has no attribute 'extend'
Run Code Online (Sandbox Code Playgroud) 我有一堆看起来像这样的列表:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Run Code Online (Sandbox Code Playgroud)
我想交换元素如下:
final_l = [2, 1, 4, 3, 6, 5, 8, 7, 10, 9]
Run Code Online (Sandbox Code Playgroud)
列表的大小可能会有所不同,但它们总是包含偶数个元素.
我是Python的新手,我现在这样做:
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
final_l = []
for i in range(0, len(l)/2):
final_l.append(l[2*i+1])
final_l.append(l[2*i])
Run Code Online (Sandbox Code Playgroud)
我知道这不是真正的Pythonic,并且想要使用更高效的东西.也许列表理解?
我有一个数字列表,如何将每个n数字组合成一个元组?
例如,如果我有一个列表,a = range(10)并且我想将每5个项目组合成一个元组,那么:
b = [(0,1,2,3,4),(5,6,7,8,9)]
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?如果len(a)不是整数倍,我也想提出一个错误n.