職業プログラマーじゃないのでpython勉強してから時間があくと(数ヶ月とか)決め事というか文法を忘れてしまう。
リストの2次元配列って[][]と[[]]どっちだっけ?
[[],[]]と[[][]]両方あるっけ?
ということでリストの備忘録.
しかし、勉強したときまとめても、後で見返すと分からない。
コメント入れても、見返すときは有用なコメントに成ってないんだわこれが.
ということでコメントじゃなくて、一個づつ進めていくのをやる.
#------------------------------------------------------------------------------- # Name: list-3d-step # Purpose:リストの表記とインデックスを理解する # Author: leoco # Created: 29/04/2020 # Copyright: (c) leoco 2020 # Licence: free #------------------------------------------------------------------------------- school_list=[ ['中等部', ['1年',['梅組','桜組']], ['2年',['松組','竹組']], ['3年',['楓組','桐組']]], ['高等部', ['1年',['杉組','桧組']], ['2年',['柏組','栗組']], ['3年',['楢組','葱組']]] ] #要素を階層別に書き出してみる for i in school_list : print(i) if type(i) is str:#文字列も1文字づつに分解されてしまうので、それを避ける処理 continue for j in i: print(j) if type(j) is str: continue for k in j: print(k) if type(k) is str: continue for l in k: print(l) if type(l) is str: continue for m in l:#A組,B組はstrなので実行されない print(m) input('今度は1ステップずつ実行 (ENTERキーを押してくれ)') a=-1 b=-1 c=-1 d=-1 for i in school_list : a+=1 stri='school_list[{}]= '.format(a) print(stri,end='') print(i) for j in i: b+=1 strj='school_list[{}][{}]= '.format(a,b) print(strj,end='') print(j) input('push enterkey') if type(j) is str: continue for k in j: c+=1 strk='school_list[{}][{}][{}]= '.format(a,b,c) print(strk,end='') print(k) input('push enterkey') if type(k) is str: continue for l in k: d+=1 strl='school_list[{}][{}][{}][{}]= '.format(a,b,c,d) print(strl,end='') print(l) input('push enterkey') if type(l) is str: continue for m in l:#A組,B組はstrなので実行されない print(m) d=-1 c=-1 d=-1 b=-1 c=-1 d=-1
school_list[0]= ['中等部', ['1年', ['梅組', '桜組']], ['2年', ['松組', '竹組']], ['3年', ['楓組', '桐組']]] school_list[0][0]= 中等部 school_list[0][1]= ['1年', ['梅組', '桜組']] school_list[0][1][0]= 1年 school_list[0][1][1]= ['梅組', '桜組'] school_list[0][1][1][0]= 梅組 school_list[0][1][1][1]= 桜組 school_list[0][2]= ['2年', ['松組', '竹組']] 続く
いやー in 演算子 いい仕事するね。
for x in y:だけで、yを分析して1個だけ要素を取り出してくれるんだから便利すぎる。
ソース見たら if が1000個位あるんだろうと想像する。
コメント