Python コンテナー型内の要素へのアクセス
Python® container は、通常、sequence 型 (list
または tuple
) または mapping 型 (dict
) です。Python では、大かっこ []
または関数 operator.getitem
を使用してコンテナー内の要素にアクセスします。スカラー string
引数を使用してコンテナーにインデックス付けすることができます。
シーケンス型
Python シーケンス型は MATLAB® cell 配列のような動作をします。
サブシーケンスを取得するには、小かっこ ()
のインデックスを使用します。
li = py.list({1,2,3,4}); res = li(2:3)
res = Python list with values: [2.0, 3.0] Use string, double or cell function to convert to a MATLAB array.
要素の内容を取得するには中かっこ {}
を使用します。
res = li{1}
res = 1
型のマッピング
型をマッピングするには、Python の "キー" 引数を中かっこで指定します。
patient = py.dict(name="John Doe",billing=127); patient{"billing"}
ans = 127
サイズと次元
MATLAB によってシステムの情報が表示されます。
p = py.sys.path; class(p)
ans = 'py.list'
p
にインデックスを付けます。
p(1) p{1}
ans = Python list with values: ['c:\\work'] Use string, double or cell function to convert to a MATLAB array. ans = Python str with no properties. c:\work
次元を確認します。
len = length(p) sz = size(p)
len = 11 sz = 1×2 1 11
配列のサポート
MATLAB はシーケンス型を 1
行 N
列の配列に変換します。
インデックス
Python は 0 ベースのインデックスを使用し、MATLAB は 1 ベースのインデックスを使用します。Python プログラミングでは、長さ len
の配列 x
の要素には x(0)
から x(len-1)
までを使用してアクセスします。MATLAB でこの配列を操作するとき、x(1)
から x(len)
までを使用してこれらの要素にアクセスします。
Python オブジェクトへのインデックス付けの制限
MATLAB 行列内の要素を参照する場合と同様に、リストや辞書などの Python コンテナー オブジェクト内のデータにもインデックス値を使用してアクセスできます。ただし、行列のインデックス指定方法の中には Python の型に対してはサポートされていないものがあります。
MATLAB でサポートされないインデックス機能 |
---|
大かっこ |
|
論理インデックス付け。 |
任意のインデックスの配列を使用したコンテナー内のデータへのアクセス。インデックスは |
コンマ区切りリスト。 |
関数 |
関連する例
- MATLAB での Python str 変数の使用
- MATLAB での Python list 変数の使用
- MATLAB での Python tuple 変数の使用
- MATLAB での Python dict 変数の使用