データをファイルからを取り込んだ上で数値をリストに格納したが、str型になっていてそのまま集計できない。リストなどのイテラブルに同じ関数を使って処理する場合、組み込み関数のmap()が使用できる。
map(function, iterable, ... )
python公式の組み込み関数の説明のところに出てくる。
https://docs.python.org/ja/3/library/functions.html#map
これを使えばfunctionのところにintやfloatを使えば、一括で変換することができる。
> Data_1 = ["32", "3", "84", "12", ... ]
> Data_1a = list(map(int, Data_1))
> print(Data_1a)
[32, 3, 84, 12, ... ]
数値の合計を出したい場合は、
> Sum_1 = sum(list(map(int, Data_1)))
> print(Sum_1)
341
今扱っているデータの一行が以下のような形
> ExampleStr = "A01\t284\t.\tC\t.\t.\tPASS\tAC=.;AF=.\tGT:AC:AF:NC\t0/0:.:.:A=1,C=43,"
マップの合計を求める場合は以下のようになる。
> Item = ExampleStr.split('\t')
> Sum_Map = sum(list(map(int, re.findall('=(\d+),', Item[9].split(":")[3]))))
> print(Sum_Map)
44
map()の出力をリストとして扱いたい場合は、list()を使う必要がある。
List = list(map(func, iterable))
ファイルを読み込んで処理することがよくあるので、覚えておくと楽だと思った。関数の部分に、例外処理などを含む処理ができるような関数を作っておいて指定したら、自分の持っているデータファイルについて便利に使えるのではないかと思う。