2016-05-05 14 views
1

に貼り付け:私は、PythonにいくつかのPHPコードを変換しようとしていると私は(コンテキストに含まれています)次のコードでは4番目の行にこだわっているのPython翻訳PHP

$table = array(); 
for ($i = 0; $i < strlen($text); $i++) { 
    $char = substr($text, $i, $look_forward); 
    if (!isset($table[$char])) $table[$char] = array(); 
} 

array()が使用されている場合PHPで配列を作成するには、$table[$char] = array()は何をしていますか?既存の配列内に新しい配列を作成しますか?それとも配列を拡張していますか?

これは何が達成されていますか?これと同等のPythonは何でしょうか?

if (!isset($table[$char])) $table[$char] = array();

答えて

-1

場合(ISSET($表[$ CHAR])!の)$表[$ CHAR] =配列();アレイ()$表[$ CHAR]がまだ設定されていない場合

$テーブルが空の配列は、それは "を含有していないれるよう$表[$ CHAR]変数の値を設定しています"$ char"をキーにして、$ table [$ char]が設定されている場合は、($ table [$ char])の値をとして配列に設定します。

あなたは

$table = array(); 
for ($i = 0; $i < strlen($text); $i++) { 
    $char = substr($text, $i, $look_forward); 
    $table[$char] = array(); 
} 

のようなコードを置けば、それは通告のような通知を行う:未定義のインデックスを:

1

の$チャーは私には思える、あなたがtableとしてlistよりも、別のデータ構造を使用する必要があります変数。私はdictが目的のためにいいと思う。私はPythonでPHPコードを模倣するために迅速な試みを行った

table = {} # use dictionary instead of list here 
for char in text: 
    if char not in table: 
     table[char] = [] 
    # do your stuff with table[char] 
    pass 

また、私は、コードは次のように書き換えることができたクラスを使用すると、https://docs.python.org/3/library/collections.html#collections.defaultdict

に見てくださいway:

import collections 

table = collections.defaultdict(list) 
for char in text: 
    # do your stuff with table[char], empty list is created by default 
    pass 
関連する問題