タグ付けされた質問 「flatten」

30
リストのリストからフラットリストを作成する方法は?
OverаэтотвопросестьответынаStack Overflowнарусском:Сшитьдвасписка、Python Pythonのリストのリストから単純なリストを作成するショートカットはあるのでしょうか。 forループでそれを行うことができますが、いくつかのクールな「ワンライナー」があるのでしょうか?で試しましたreduce()が、エラーになります。 コード l = [[1, 2, 3], [4, 5, 6], [7], [8, 9]] reduce(lambda x, y: x.extend(y), l) エラーメッセージ Traceback (most recent call last): File "<stdin>", line 1, in <module> File "<stdin>", line 1, in <lambda> AttributeError: 'NoneType' object has no attribute 'extend'


30
リストの不規則なリストをフラット化する
OverаэтотвопросестьответынаStack Overflowнарусском:Сделатьглубоковложенныйсписокплоскимбезветвле はい、私はこの主題が以前にカバーされたことを知っていますが(ここ、ここ、ここ、ここ、ここ)、私が知る限り、1つを除くすべてのソリューションは次のようなリストで失敗します: L = [[[1, 2, 3], [4, 5]], 6] 必要な出力がある場所 [1, 2, 3, 4, 5, 6] あるいは、おそらくもっと良いのはイテレータです。任意のネストで機能することがわかった唯一の解決策は、この質問にあります: def flatten(x): result = [] for el in x: if hasattr(el, "__iter__") and not isinstance(el, basestring): result.extend(flatten(el)) else: result.append(el) return result flatten(L) これは最高のモデルですか?見落としましたか?何か問題は?



3
パンダのマルチインデックスを列に変える
2つのインデックスレベルのデータフレームがあります。 value Trial measurement 1 0 13 1 3 2 4 2 0 NaN 1 12 3 0 34 これに変えたいのは: Trial measurement value 1 0 13 1 1 3 1 2 4 2 0 NaN 2 1 12 3 0 34 これを行うにはどうすればよいですか? ここで説明されているようにデータを集計したいので、これが必要ですが、インデックスとして使用されている場合、そのような列を選択することはできません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.