3

私は次のPHPコードを持っていますが、私が生きている間、Pythonのempty()関数を実装して、インデックスがリストで定義されているかどうかを確認する簡単で洗練された方法を考えることはできません。

$counter = 0;
$a = array();
for ($i=0;$i<100;$i++){
  $i = ($i > 4) ? 0 : $i;
  if empty($a[$i]){
    $a[$i]=array();
  }
  $a[$i][] = $counter;
  $counter++;
}

私が行った場合

if a[i] is None

次に、インデックスが範囲外になります。しかし、私はそれを複数のステップで行う方法を知っていますが、それは私が望んでいたことではありません。

4

3 に答える 3

3

PHP配列とPythonリストは同等ではありません。PHP配列は、実際には連想コンテナです。

PHPの配列は、実際には順序付けられたマップです。マップは、値をキーに関連付けるタイプです。このタイプは、いくつかの異なる用途に最適化されています。配列、リスト(ベクトル)、ハッシュテーブル(マップの実装)、辞書、コレクション、スタック、キューなどとして扱うことができます。

Pythonでは、マップデータ構造は辞書として定義されています。

マッピングオブジェクトは、ハッシュ可能な値を任意のオブジェクトにマッピングします。マッピングは可変オブジェクトです。現在、標準のマッピングタイプは辞書のみです。

このempty()関数は多くの目的に役立ちますin使用コンテキストでは、Python演算子と同等です。

>>> a = {}
>>> a[1] = "x"
>>> a[3] = "y"
>>> a[5] = "z"
>>> i = 3
>>> i in a
True
>>> i = 2
>>> i in a
False
于 2012-06-12T01:01:15.897 に答える
0

リストを使用してそれを実行しようとした場合は、実際にそのインデックスをnoneに設定する必要があります。そうしないと、リストの最後を超えてインデックスをチェックしようとしている要素がそこにない可能性があります。

>>> i = [None]
>>> i
[None]
>>> i = [None, None]
>>> i
[None, None]
>>> i[1] is None
True
于 2012-06-12T01:03:33.213 に答える
0
# variable may not exsists    
if (variable in vars() or variable in globals()) and variable != "" and variable == False:
    pass
于 2019-10-14T10:41:10.557 に答える