2016-06-27 5 views
0

現在、私はいくつかのExcelデータを扱うためにPythonを使用しています。範囲を宣言せずにPythonリストに値を代入

newSet = [[]] 
newSet[1][1]="abc" 
print(newSet[1][1]) 
IndexError: list index out of range 

私はあなたが以前にルアを使っているのか分かりません。

Luaは空のリストに値を割り当てることができます(リストは範囲を宣言しません)。

pythonはリストの範囲を宣言することなく値を割り当てることができますか?

他の方法でこれを行うことができますか?リストの範囲が分からないため

+2

インデックスはpythonで0から始まり、あなたは例えば、空のリストに新しい値を追加する必要があります。 'newSet [0] .append( 'abc')'です。疎な配列を探しているなら、辞書を見たいかもしれません。 – AChampion

+0

値( 'a [i] = b')を割り当てる必要があるたびに、' i'と 'a'のサイズを比較できます。もし 'a'が小さすぎる場合は、それを増やすことができます(' append'を使用してください)。 – Ilya

答えて

-1

リストの範囲がわからないので、コンテナとしてlistではなくcollections.defaultdictを使用することをお勧めします。次のように簡単な例は次のとおりです。

from collections import defaultdict 

newSet = defaultdict(dict) 
newSet[1][1] = "abc" 
print(newSet[1][1]) 

結果は、あなたが期待通りである:

abc 
+1

正しい解決策は、 'defaultdict'で別の言語の任意のインデックスをエミュレートするのではなく、' append() 'を使うことです。 – TigerhawkT3

+1

インデックスが重要であれば、 'defaultdict'が正しいでしょう。 – sighingnow

+0

これが動作し、thx – Rex

関連する問題