彼ら。私は問題に対する最も洗練された解決策を見つけようとしていますが、Pythonには私がやろうとしていることに対して何かが組み込まれているのではないかと思いました。
私がやっていることはこれです。リストがあり、アイテムを取得してリストを返すA
関数があります。リスト内包表記を使用して、すべてをそのようf
に変換できます。A
[f(a) for a in A]
しかし、これはリストのリストを返します。
[a1,a2,a3] => [[b11,b12],[b21,b22],[b31,b32]]
私が本当に望んでいるのは、フラット化されたリストを取得することです。
[b11,b12,b21,b22,b31,b32]
今、他の言語がそれを持っています。これは伝統的flatmap
に関数型プログラミング言語で呼ばれ、.Netはそれをと呼びますSelectMany
。Pythonには似たようなものがありますか?関数をリストにマップして結果をフラット化するための優れた方法はありますか?
私が解決しようとしている実際の問題はこれです。ディレクトリのリストから始めて、すべてのサブディレクトリを見つけます。それで;
import os
dirs = ["c:\\usr", "c:\\temp"]
subs = [os.listdir(d) for d in dirs]
print subs
currentliyは私にリストのリストをくれますが、私は本当にリストが欲しいです。