職業プログラマーじゃないので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個位あるんだろうと想像する。