|
|
1
32
理解?好。..
|
|
|
2
16
我发现最快的方法是从一个空数组开始并扩展它:
这是Alex Martelli尝试的两倍多: Making a flat list out of list of lists in Python
我提出这个想法是因为我有一种预感,在幕后,extend会为列表分配适量的内存,并可能使用一些低级代码来移动项目。我不知道这是不是真的,但谁在乎呢,它更快。 顺便说一句,这只是线性加速:
您还可以使用
它还为您提供了不使用函数式编程的一些好处。也就是
顺便说一句,最好避免对列表的理解。小的并不太糟糕,但总的来说,列表理解实际上并不能节省你太多的打字时间,但通常更难理解,也很难更改或重构(见过三级列表理解吗?)。 Google coding guidelines advise against them except in simple cases. 我的观点是,它们只在“丢弃”代码中有用,即作者不关心可读性的代码,或者已知永远不需要未来维护的代码。 比较这两种写同一件事的方法:
与此:
YMMV,但第一个让我停下了脚步,我不得不考虑一下。在第二个中,嵌套从缩进中显而易见。 |
|
|
3
3
你可以使用reduce来实现你的目标:
这将返回一个元组而不是列表,因为原始列表中的元素是连接起来的元组。但是你可以很容易地从中构建一个列表,并且join方法也接受元组。 顺便说一句,列表理解不是正确的工具。基本上,列表理解通过描述这个列表的元素应该是什么样子来构建一个新的列表。您希望将元素列表缩减为仅一个值。 |
|
|
4
1
或者,不知道内部序列的类型(只要它们都是相同的):
|
|
|
Honza S. · 在列表理解中更新词典 1 年前 |
|
kesarling · 这个Haskell列表理解是如何评估的? 2 年前 |
|
|
Ruslan199 · python中的条件列出了理解 2 年前 |
|
|
Chris · 如何在OpenSCAD中的FOR循环中成对创建矢量元素 2 年前 |
|
|
Jme · 为什么在Python中解包时理解只适用于元组? 2 年前 |
|
|
WeCanDoItGuys · 使用列表理解创建一副多副牌[重复] 2 年前 |
|
|
tonydanza123 · 如果值不存在,则列表理解返回列表 2 年前 |