GUIを自動で操作するフリーツール:SikuliX ですが、Pythonの構文を使用して、リストを利用することは可能です。
本記事では、リストを扱う際の構文について、まとめます。
リストの定義(初期化)
リストの使用
Pythonでは、配列よりも柔軟に利用できる「リスト」を使うことが多いと思います。[ ]を使用し、以下のように記載することができます。
コードサンプル:
sample_list = [1,2,3,4,5]
タプルの使用
Pythonでは、「タプル」という方法も使うことができます。( )を使用して記載することができます。ただし、タプルの場合は、定義時に格納した要素を変更することができません。そのため、格納する値が空での設定もできますが、基本的には変更させたくない(変更不要)な値を格納するのに適しているとものです。
コードサンプル:
sample_tuple = (1,2,3,4,5)
リストの要素の出力
print文(Python2系) もしくは、print関数(Python3系)を用います。なお、Sikuli XではPython2系を使用しているため、ここではPython2系に基づいて、記載します。
特定の要素の出力
特定の要素を出力するには、[ ]で出力したい要素の位置を指定してあげて下さい。ここで注意すべきは、要素の位置は、「1」からではなく、「0」からになる点です。
コードサンプル:
sample_list = [1,2,3,4,5]
print sample_list[0]
print sample_list[1]
print sample_list[2]
print sample_list[3]
print sample_list[4]
実行結果:
1
2
3
4
5
※リストの要素が空で会った場合は、以下のようなエラーが表示されます。
コードサンプル(要素が空):
sample_list = []
print sample_list[0]
実行結果:
[error] IndexError ( index out of range: 0 )
※要素数を超える位置を指定した場合は、以下のようなエラーが表示されます。
コードサンプル(要素数超過):
sample_list = [1,2,3,4,5]
print sample_list[5]
実行結果:
[error] IndexError ( index out of range: 5 )
全ての要素の出力
全ての要素を出力する場合は、出力したい要素の位置を指定する必要はなく、リスト名を使用します。
コードサンプル:
sample_list = [1,2,3,4,5]
print(sample_list)
実行結果:
[1, 2, 3, 4, 5]
連続した一部の要素の出力
一部の要素を出力する場合は、「:」を使用して出力したい範囲を指定します。この方法(機能)には名称があり、「スライス」と呼びます。リストに対しては、以下の形式が基本形です。
“リスト名”[“出力をさせたい初めの値の位置(開始位置)”:”出力をさせたい値の1つ後の位置(終了位置)”]
なお、各位置は、省略も可能です。開始位置を省略した場合は「0」になり、終了位置を省略した場合はリストがもつ最後の値の位置になります。
コードサンプル:
sample_list = [1,2,3,4,5]
print sample_list[1:3]
実行結果:
[2, 3]
リストの要素の追加
要素の追加(append)
append()を用いることで、1つの要素をリストの最後に追加していくことが可能です。追加できる要素は「数値」だけでなく、「文字列」「リスト」も1つの要素として追加することができます。
コードサンプル:
sample_list = [1,2,3,4,5]
sample_list.append(6)
sample_list.append(“Seven”)
sample_list.append([8,9])
print(sample_list)
実行結果:
[1, 2, 3, 4, 5, 6, ‘Seven’, [8, 9]]
要素の追加(extend)
extend()を用いることで、リストの最後に要素を追加していくことが可能です。append()と同様に、追加できる要素は「数値」「文字列」「リスト」などです。しかし、append()とは違い、文字列や文字列は、1文字ずつリストに格納されるようになります。
コードサンプル:
sample_list = [1,2,3,4,5]
sample_list.extend([6])
sample_list.extend(“Seven”)
sample_list.extend([8,9])
print(sample_list)
実行結果:
[1, 2, 3, 4, 5, 6, ‘S’, ‘e’, ‘v’, ‘e’, ‘n’, 8, 9]
要素の挿入
insert(“挿入したい場所”,挿入する内容)を用いることで、任意の場所に要素を挿入することが可能です。こちらも「数値」「文字列」「リスト」を挿入することが可能です。
コードサンプル:
sample_list = [1,2,7,8]
sample_list.insert(2,3)
sample_list.insert(3,”four”)
sample_list.insert(4,[5,6])
print(sample_list)
実行結果:
[1, 2, 3, ‘four’, [5, 6], 7, 8]
リストの要素の編集
要素の書き換え
要素の書き換えでは「書き換えたい要素の位置」と「書き換える内容」を指定することで、要素の変更が可能になります。
コードサンプル:
sample_list = [1,2,3,4,5]
sample_list[2] = 0
print(sample_list)
実行結果:
[1, 2, 0, 4, 5]
リストの要素の削除
リスト自体の削除(del)
こちらは、Python3、Python2の双方では利用可能です。「 [error] AttributeError ( ‘list’ object has no attribute ‘clear’ ) 」のようになってしまいます。
リスト自体を全削除です。以下のコードサンプルの2行目で削除され、出力しようとすると定義されていない旨のエラーメッセージが表示されます。
コードサンプル:
sample_list = [1,2,3,4,5]
del sample_list
print(sample_list)
実行結果:
[error] NameError ( name ‘sample_list’ is not defined )
要素の全削除(clear)
Python3で搭載された機能のため、Python2では利用できません。「 [error] AttributeError ( ‘list’ object has no attribute ‘clear’ ) 」のようになってしまいます。
コードサンプル:
sample_list = [1,2,3,4,5]
sample_list.clear()
print(sample_list)
実行結果:
[]
要素の全削除(del)
deleteでは、「リスト自体の削除」の他にも、「要素の削除」を行うことができます。要素の全削除では、スライスを用いて以下のように記載します。
コードサンプル:
sample_list = [1,2,3,4,5]
del sample_list[:]
print(sample_list)
実行結果:
[]
なお、単に要素の初期化であれば、以下のように上書きするだけでも良いです。
コードサンプル:
sample_list = [1,2,3,4,5]
sample_list = []
print(sample_list)
任意の位置の要素の削除(del)
「任意の位置の要素の削除」では、[ ]内に削除したい要素の位置を指定し、以下のように記載します。
コードサンプル:
sample_list = [1,2,3,4,5]
del sample_list[2]
print(sample_list)
実行結果:
[1, 2, 4, 5]
また、スライスで指定した範囲の要素を削除することもできます。
コードサンプル:
sample_list = [1,2,3,4,5]
del sample_list[1:3]
print(sample_list)
実行結果:
[1, 4, 5]
任意の位置の要素の削除(pop)
delと同様で、pop()の( )内に削除したい要素の位置を指定し、以下のように記載します。なお「0」にすれば1つ目の位置の要素を削除し、指定しない場合は最後の要素を削除します。
コードサンプル:
sample_list = [1,2,3,4,5]
sample_list.pop(2)
print(sample_list)
実行結果:
[1, 2, 4, 5]
指定した内容の要素の削除(remove)
removeでは、指定した内容(数字や文字列)と同じ内容の要素を削除します。もし、同じ内容が複数存在している場合は、初めの方を削除します。もし、リスト内に存在しない場合は、エラーになります。
コードサンプル:
sample_list = [1,2,3,4,5,1,2,3]
sample_list.remove(2)
print(sample_list)
実行結果:
[1, 3, 4, 5, 1, 2, 3]
リスト同士の演算
リストを対象とする場合、「加算:リスト同士の結合」「乗算:リストの繰り返し」を行うことが可能です。
リスト同士の加算
「要素の追加(extend)」で、リストも追加できると記載しましたが、リスト同士の場合は状況によってこちらの方法と使い分ける方が良いでしょう。
コードサンプル:
sample_list1 = [1,2]
sample_list2 = [3,4,5]
sample_list = sample_list1 + sample_list2
print(sample_list)
実行結果:
[1, 2, 3, 4, 5]
リストの乗算
リストの乗算をすることで、指定したリストを掛けた回数分繰り返されるリストを作成することができます。
コードサンプル:
sample_list1 = [1,2,3]
sample_list = sample_list1 * 3
print(sample_list)
実行結果:
[1, 2, 3, 1, 2, 3, 1, 2, 3]
コードサン
コードサンプル:
file = open(”samplefile.txt”, “r”)
まとめ
今回は、ユーザー操作を促したり、ユーザーに通知するためのポップアップウィンドウの使い方について、記載しました。
ぜひ色々な使い方を模索してみて下さい。