[解決済み] python list comprehensions; リストのリストを圧縮する?
2023-03-06 17:55:24
質問
の皆さん、こんにちは。私は問題に対する最もエレガントな解決策を見つけようとしていて、私がやろうとしていることのために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 は私にリストのリストを与えますが、私は本当にリストが欲しいのです。
どのように解決するのですか?
1つのリスト内包でネストした繰り返しを行うことができます。
[filename for path in dirs for filename in os.listdir(path)]
と等価である(少なくとも機能的には)。
filenames = []
for path in dirs:
for filename in os.listdir(path):
filenames.append(filename)
関連
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] ネストされた関数。副作用の不適切な使用?
-
[解決済み] リストのリストからフラットなリストを作るには?
-
[解決済み] (関数型)リアクティブプログラミングとは?
-
[解決済み] ステートレス・プログラミングのメリット?
-
[解決済み] なぜLispを学ばなければならないのか?[クローズド]
-
[解決済み] Swiftの配列に対する集合演算(union, intersection)?
-
[解決済み] 純粋関数型言語において、逆関数を得るためのアルゴリズムはあるか?
-
[解決済み] 関数型プログラミングのメリットは?[クローズド]
-
[解決済み] 中型のClojureサンプルアプリケーション?
-
[解決済み] Schemeのeq, eqv, equal, =の違いは何ですか?