60489


タイトルの通りです。  
入れ子構造になっている配列を文字列にしたいのですが、joinメソッドを使ってもうまくいきません。  
どなたかご教授いただけると幸いです。

**使用環境**  
jupyter notebook  
windows10

[code]

    list6 = [['原点', '手書き', '文字', '絵', '筆記', '作法', 'ストーリー', '組み込ん', 'ボールペン'],[ '価値', '提供', '感銘', '受け', '三種', '素材', '駆使', '形態'],[ '持っ', '使う', '価値', '提供', '広告', '店頭', '効果', '訴求', '力', '兼ね備え'], ['レフィル', '交換', 'ユーザー', '好み', '色', '内', '色']]
    op = " ".join(list6)
    print(op)
    
[/code]

出力結果

[code]

    TypeError: sequence item 0: expected str instance, list found
    
[/code]


CC BY-SA 4.0
2019-11-13T14:31:06.947
60487
2019-11-13T15:14:44.680
36375
question
python
入れ子構造の配列を文字列にしたい


この記事が適用出来るでしょう。  
[Python 3 で flatten
する方法いろいろ](https://qiita.com/hoto17296/items/e1f80fef8536a0e5e7db)

[code]

    list6 = [['原点', '手書き', '文字', '絵', '筆記', '作法', 'ストーリー', '組み込ん', 'ボールペン'],[ '価値', '提供', '感銘', '受け', '三種', '素材', '駆使', '形態'],[ '持っ', '使う', '価値', '提供', '広告', '店頭', '効果', '訴求', '力', '兼ね備え'], ['レフィル', '交換', 'ユーザー', '好み', '色', '内', '色']]
    op = " ".join(list6)
    print(op)
    
    flatten = lambda x: [z for y in x for z in (flatten(y) if hasattr(y, '__iter__') and not isinstance(y, str) else (y,))]
    list7 = flatten(list6)
    op = " ".join(list7)
    print(op)
    
[/code]

出力結果

[code]

    原点 手書き 文字 絵 筆記 作法 ストーリー 組み込ん ボールペン 価値 提供 感銘 受け 三種 素材 駆使 形態 持っ 使う 価値 提供 広告 店頭 効果 訴求 力 兼ね備え レフィル 交換 ユーザー 好み 色 内 色
    
[/code]

> ただし配列のみならず iterable なオブジェクトをすべて展開してしまうので、配列の中に iterable
> なオブジェクトを入れている場合は注意する必要がある。

もう少し調べたら色々あるようで、いっぱい見つかりました。  
適用対象に違いがあるかもしれませんが、どれでもお好みのものを使えば良いでしょう。  
[Pythonでflatten（多次元リストを一次元に平坦化）](https://note.nkmk.me/python-list-flatten/)  
[pythonでflatten](https://qiita.com/shiracamus/items/fb85943ed34d5ec09c4f)  
[【Python】ネストされたリストをflattenする関数](https://engineeeer.com/python-nestedlist-
flatten/)  
[リスト内のリストをすべて外す方法について](https://teratail.com/questions/175231)  
[【python】listをflatten(listの入れ子構造を除去)する方法](https://lanchesters.site/python-
list-flatten/)  
[How to convert a nested list into a one-dimensional list in
Python?](https://stackoverflow.com/q/17485747/9014308)


CC BY-SA 4.0
2019-11-13T14:53:45.457
60489
2019-11-13T15:14:44.680
2019-11-13T15:14:44.680
26370
26370
60487
answer