先週から妻にアノテーションしてもらっていたパブリックデータでの人工知能モデルの開発に成功。
そこそこの精度だったので、本題である人工知能モデルの出力結果からの数値計算プログラムを作成するものの、Pythonの基本構文を今一つ理解しきれていないために中々苦労しています...リスト内包表記とか、λ式とか、いつになったら使えるようになるのだろう(._.)
自粛中で海には行けないし(連盟やローカル主体で自粛すること自体にたくさんの意味があると思っています)、朝から小さなプログラムを書いて勉強中。
ようやく先が見えてきたので、メモ代わりにアップ。
失敗例も明確に理由がわかるわけではないので、教えていただけるとうれしいです。
*入力したインデントが上手く反映されていません...インデントのミスはありませんでした!
次は例外処理を入れて上手くいくかテストしないと...
タプルのリストを作る
tup = [('CHEST',10,(1,2,3,4)),('chest',10,(1,2,3,4))]
リストの要素であるタプルから、任意の要素をスライシングで取り出す
tup[0][0]
Out[13]: 'CHEST'
通常のfor文のテスト
for i in tup:
print(i)
('CHEST', 10, (1, 2, 3, 4))
('chest', 10, (1, 2, 3, 4))
タプルのリストから、任意のスライシングで取り出す関数cnt2を定義
def cnt2(key,se):
return se[key]
for文に組み込んでのテスト
for cnt, se in enumerate(tup):
print(cnt2(cnt, tup))
('CHEST', 10, (1, 2, 3, 4))
('chest', 10, (1, 2, 3, 4))
成功!
リスト内にあるタプル内の3番目の要素を取り出す関数cnt3を定義
def cnt3(key, se):
return se[key][2]
for文に組み込んでのテスト
n [35]: for cnt, se in enumerate(tup):
print(cnt3(cnt, tup))
(1, 2, 3, 4)
(1, 2, 3, 4)
成功!
for文に条件分岐を上手く入れられなかったので、for文内に変数を定義してみる練習
for cnt, se in enumerate(tup):
key = cnt2(cnt, tup)[0]
print(key)
CHEST
chest
for文に変数を定義してやると、条件分岐が上手くいった!!
for cnt, se in enumerate(tup):
key = cnt2(cnt, tup)[0]
if key == 'chest':
print(key)
chest
以下、失敗例...
ダメだった例(1)
def cnt(se):
for i in se:
return i
cnt(tup)
Out[19]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(2)
def cnt(se):
cont = 0
for cont in range(len(se)):
return se[cont]
cnt(tup)
Out[21]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(3)
def cnt(se):
cont = 0
for cont in range(len(se)):
Element = se[cont]
cont +=1
return Element
cnt(tup)
Out[23]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(4)
def cnt(se):
cont = 0
for cont in range(len(se)):
Element = se[cont]
#cont +=1
return Element
cont+=1
cnt(tup)
Out[25]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(5)
def cnt(se):
cont = 0
for cont in range(len(se)):
Element = se[cont]
#cont +=1
#return Element
cont+=1
return Element
cnt(tup)
Out[27]: ('chest', 10, (1, 2, 3, 4))
ダメだった例(6-1) for文にif文で条件分岐を加えた失敗例
for cnt, se in enumerate(tup):
if cnt2(cnt, tup)[0] == 'chest':
print(cnt2(cnt, tup)
break
File "", line 4
break
^
SyntaxError: invalid syntax
ダメだった例(6-2) for文にif文で条件分岐を加えた失敗例
for cnt, se in enumerate(tup):
if cnt2(cnt, tup)[0] == 'chest':
print(cnt2(cnt, tup)
break
File "", line 4
break
^
SyntaxError: invalid syntax
ダメだった例(6-2) for文にif文で条件分岐を加えた失敗例
for cnt, se in enumerate(tup):
if cnt2(cnt, tup)[0] == 'chest':
print(cnt2(cnt, tup)
File "", line 4
^
SyntaxError: unexpected EOF while parsing
そこそこの精度だったので、本題である人工知能モデルの出力結果からの数値計算プログラムを作成するものの、Pythonの基本構文を今一つ理解しきれていないために中々苦労しています...リスト内包表記とか、λ式とか、いつになったら使えるようになるのだろう(._.)
自粛中で海には行けないし(連盟やローカル主体で自粛すること自体にたくさんの意味があると思っています)、朝から小さなプログラムを書いて勉強中。
ようやく先が見えてきたので、メモ代わりにアップ。
失敗例も明確に理由がわかるわけではないので、教えていただけるとうれしいです。
*入力したインデントが上手く反映されていません...インデントのミスはありませんでした!
次は例外処理を入れて上手くいくかテストしないと...
タプルのリストを作る
tup = [('CHEST',10,(1,2,3,4)),('chest',10,(1,2,3,4))]
リストの要素であるタプルから、任意の要素をスライシングで取り出す
tup[0][0]
Out[13]: 'CHEST'
通常のfor文のテスト
for i in tup:
print(i)
('CHEST', 10, (1, 2, 3, 4))
('chest', 10, (1, 2, 3, 4))
タプルのリストから、任意のスライシングで取り出す関数cnt2を定義
def cnt2(key,se):
return se[key]
for文に組み込んでのテスト
for cnt, se in enumerate(tup):
print(cnt2(cnt, tup))
('CHEST', 10, (1, 2, 3, 4))
('chest', 10, (1, 2, 3, 4))
成功!
リスト内にあるタプル内の3番目の要素を取り出す関数cnt3を定義
def cnt3(key, se):
return se[key][2]
for文に組み込んでのテスト
n [35]: for cnt, se in enumerate(tup):
print(cnt3(cnt, tup))
(1, 2, 3, 4)
(1, 2, 3, 4)
成功!
for文に条件分岐を上手く入れられなかったので、for文内に変数を定義してみる練習
for cnt, se in enumerate(tup):
key = cnt2(cnt, tup)[0]
print(key)
CHEST
chest
for文に変数を定義してやると、条件分岐が上手くいった!!
for cnt, se in enumerate(tup):
key = cnt2(cnt, tup)[0]
if key == 'chest':
print(key)
chest
以下、失敗例...
ダメだった例(1)
def cnt(se):
for i in se:
return i
cnt(tup)
Out[19]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(2)
def cnt(se):
cont = 0
for cont in range(len(se)):
return se[cont]
cnt(tup)
Out[21]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(3)
def cnt(se):
cont = 0
for cont in range(len(se)):
Element = se[cont]
cont +=1
return Element
cnt(tup)
Out[23]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(4)
def cnt(se):
cont = 0
for cont in range(len(se)):
Element = se[cont]
#cont +=1
return Element
cont+=1
cnt(tup)
Out[25]: ('CHEST', 10, (1, 2, 3, 4))
ダメだった例(5)
def cnt(se):
cont = 0
for cont in range(len(se)):
Element = se[cont]
#cont +=1
#return Element
cont+=1
return Element
cnt(tup)
Out[27]: ('chest', 10, (1, 2, 3, 4))
ダメだった例(6-1) for文にif文で条件分岐を加えた失敗例
for cnt, se in enumerate(tup):
if cnt2(cnt, tup)[0] == 'chest':
print(cnt2(cnt, tup)
break
File "
break
^
SyntaxError: invalid syntax
ダメだった例(6-2) for文にif文で条件分岐を加えた失敗例
for cnt, se in enumerate(tup):
if cnt2(cnt, tup)[0] == 'chest':
print(cnt2(cnt, tup)
break
File "
break
^
SyntaxError: invalid syntax
ダメだった例(6-2) for文にif文で条件分岐を加えた失敗例
for cnt, se in enumerate(tup):
if cnt2(cnt, tup)[0] == 'chest':
print(cnt2(cnt, tup)
File "
^
SyntaxError: unexpected EOF while parsing