3.8.4. for 文を使う¶
for 文は要素を逐次処理するための制御フローです. PySIMPLE の集合,定数,変数,式,制約式などのオブジェクトはいずれも for 文で処理することができます.:
IJ = Set(value=[(1,3), (1,4), (2,3)])
for elm in IJ:
print(elm)
この出力は次のようになります.:
(1, 3)
(1, 4)
(2, 3)
出力順は毎回同じになります.
添字では set
属性で対応する集合を用います.:
ij = Element(value=[(1,3), (1,4), (2,3)])
for elm in ij.set:
print(elm)
次元に限らず各要素は必ずタプルになることに注意してください.:
I = Set(value=[1, 2])
for elm in I:
print(elm)
出力:
(1,)
(2,)
一次元の要素をタプルとして扱いたくない場合,アンパックしながら取り出すと簡単に回避できます.:
I = Set(value=[1, 2])
for elm, in I: # 'elm,' とカンマがついている
print(elm)
出力:
1
2
定数は辞書と同じように扱われます.すなわちキーが取り出されます.:
i = Element(value=[1, 2])
a = Parmeter(index=i, value={1: 10, 2: 20})
for elm in a:
print(elm)
出力:
(1,)
(2,)
値を取り出すには values()
,キーと値を同時に取り出すには items()
メソッドを使います.:
for key, value in a.items():
print(key, value)
出力:
(1,), 10
(2,), 20
変数の値を取り出すには .val
などの属性に続けて同様の操作ができます.:
i = Element(value=[1, 2])
x = Variable(index=i, init={1: 10, 2: 20})
for key, value in x.val.items():
print(key, value)