やりたいこと
pythonの二次元配列を転置してさらにint をstrに変換する
pandas やnd.array は使わないで行いたい
example.txt
[
[5, 0, 1, 1],
[1, 0, 1, 5],
[0, 1, 6, 0],
[0, 4, 3, 0],
[5, 2, 0, 0],
[5, 0, 1, 1],
[0, 6, 0, 1],
[0, 1, 0, 6]
]
=>
[
['5', '1', '0', '0', '5', '5', '0', '0'],
['0', '0', '1', '4', '2', '0', '6', '1'],
['1', '1', '6', '3', '0', '1', '0', '0'],
['1', '5', '0', '0', '0', '1', '1', '6']
]
code
hoge.py
cnt_ACGT_t = [list(map(str,i)) for i in zip(*cnt_ACGT)]
転置
複数のイテラブルを受け取り、同じ場所の要素でまとめたイテレータを返す組み込み関数であるzipを用いる
zip(*cnt_ACGT)
でcnt_ACGTのリストを転置したものがイテレータオブジェクトに変換された
全要素のintからstrの変換
zip(*cnt_ACGT)はイテレータなので、そのままリスト内包表記を使って各要素をstrに変換する
1行ごとのリストにたいしてmap でstrに変換する
参考
https://note.nkmk.me/python-list-transpose/ おなじみnkmkさんのブログを参考にしました