51017

[code]

    1
    2
    3
    4
    5
    
[/code]

というデータが一列だけのcsvファイルがあります。

[code]

    import csv
    
    with open("~.csv") as fp:
        lst = list(csv.reader(fp))
    print(lst)
    
[/code]

出力するとこのように二次元配列になってしまいます。

[code]

    [['1'], ['2'], ['3'], ['4'], ['5']]
    
[/code]

`[1, 2, 3, 4, 5]`となるようにしたいです。


CC BY-SA 4.0
2018-12-07T19:39:06.783
51015
2018-12-08T01:48:34.907
2018-12-08T01:36:35.200
23994
31334
question
python csv
csvデータを一次元配列にしたい


## 方法1

目的のファイルが「複数のデータが1行にコンマで区切られて書かれているファイル」ということではなく「1行に必ず1つのみデータがあるファイル」ということであれば、CSV
として読み込むのではなくファイルから各行読み込めば良いです。

[code]

    with open("test.csv") as fp:
        data = fp.read().splitlines()
    print(data)
    
[/code]

参考

  * [How to read a file line-by-line into a list?](https://stackoverflow.com/q/3277503/5989200) \-- Stack Overflow

## 方法2

CSV を二次元リストとして読み込んだ後、一次元リストに flatten することでも解決できそうです。Python で二次元リストを一次元リストに
flatten するためにはたとえばリスト内包表記が使えます。

[code]

    with open("test.csv") as fp:
        csvList = list(csv.reader(fp))
    flatList = [item for subList in csvList for item in subList]
    print(flatList)
    
[/code]

参考

  * [How to make a flat list out of list of lists?](https://stackoverflow.com/q/952914/5989200) \-- Stack Overflow
  * [Python Tips：多重リストをフラットにしたい](https://www.lifewithpython.com/2014/01/python-flatten-nested-lists.html) \-- Life with Python


CC BY-SA 4.0
2018-12-08T01:48:34.907
51017
2018-12-08T01:48:34.907
19110
51015
answer