Python

複数リスト(配列)を順に取り出して2次元配列にする方法!Pythonの勉強

python ロゴ

スプレッドシートに書き込む際に配列を縦に並べ替える必要がありました。1個ずつ入れていくのは時間がかかりますし。

ややこしいので、やりたいことから説明します。

やりたいこと

複数リストをインデックスの0番同士を新しい配列にした2次元配列を作りたいです。

list1 = [1,2,3]
list2 = ['a', 'b', 'c']

#なんやかんやして以下の形にしたい
list = [[1,'a'],[2,'b'], [3,'C']]

複数リストを順に取り出して2次元配列にする

以下のような形になりました。

def mixLists(lists):
    verticalList=[]
    for i in range(len(lists[0])):
        arr = [] 
        for x in lists:
            arr.append(x[i])
        verticalList.append(arr)
    return verticalList  

list1 = [1,2,3]
list2 = ['a', 'b', 'c']
lists =[list1, list2]
res = mixLists(lists)
print(res) #[[1,'a'],[2,'b'], [3,'C']]

欠点としてはそれぞれのリストの長さが同じでなければならないことです。バラバラの場合は長さを比較して長いものに合わせてあげないといけないですね。

おわり

もうちょっといい形にできそうですがひとまずやりたいことができたのでよしとします。

参考サイト:Python | Printing list vertically – GeeksforGeeks

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です