作者:杨航锋
链接:https://www.zhihu.com/question/57470958/answer/153405326
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
<img src="https://pic2.zhimg.com/50/v2-2e6f47e1cc72f7d934e83526278d8fc1_hd.jpg" data-rawwidth="558" data-rawheight="256" class="origin_image zh-lightbox-thumb" width="558" data-original="https://pic2.zhimg.com/v2-2e6f47e1cc72f7d934e83526278d8fc1_r.jpg">
<img src="https://pic1.zhimg.com/50/v2-bc4829f6f3d0dd6bc3e87bebbd219e55_hd.jpg" data-rawwidth="540" data-rawheight="122" class="origin_image zh-lightbox-thumb" width="540" data-original="https://pic1.zhimg.com/v2-bc4829f6f3d0dd6bc3e87bebbd219e55_r.jpg">
<img src="https://pic2.zhimg.com/50/v2-5399e0c43570833817fdd3420ed4286e_hd.jpg" data-rawwidth="518" data-rawheight="120" class="origin_image zh-lightbox-thumb" width="518" data-original="https://pic2.zhimg.com/v2-5399e0c43570833817fdd3420ed4286e_r.jpg">
<img src="https://pic4.zhimg.com/50/v2-5e44edfccdf8ad3c7ce997e9577b5969_hd.jpg" data-rawwidth="769" data-rawheight="284" class="origin_image zh-lightbox-thumb" width="769" data-original="https://pic4.zhimg.com/v2-5e44edfccdf8ad3c7ce997e9577b5969_r.jpg">
链接:https://www.zhihu.com/question/57470958/answer/153405326
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
对于列表形如list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]转化成列表list_2 = [1, 2, 3, 4, 5, 6, 7, 8, 9]的问题。
- 一般方法
list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]list_2 = []for _ in list_1:list_2 += _print(list_2)
结果一截图:

2. 更Pythonic的方法二,列表推导
list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]][i for k in list_1 for i in k]
结果二截图:

3. 抽象用法(知道就好但不推荐哦)
list_1 = [[1, 2], [3, 4, 5], [6, 7], [8], [9]]sum(list_1, [])
结果三截图:

解释下Python中sum函数的这种用法:

如图所示,sum的第一个参数为可迭代对象即可,第二个参数默认为0,但是在上述代码中我改成了空列表,因此sum函数的功能变成[] + i i in iterable(也不知道这么解释看不看的懂哈哈)