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)