声明

2017-04-17 9 views
0

が、私は次のようにこれらのリストは、私がそのIラインの作成を定義する関数を作成したいの後にコードで声明

list_01= [['Little Line', '15']] 
list_02= [['Long Line', '20']] 

後に構造化されている複数のリストを持っている場合では文字列のリストを使用して以下のように働きたい。リスト内の項目が文字列「Little Line」と「15」に等しい場合、小さな線が作成されます。次のように

def draw_line(dataset): 
    if dataset[0[0]]==('Little Line'): 
     left(dataset[0[1]]) 
     foward(25) 

その後、私は、コードの後半でこの関数を呼び出すことができます。

draw_line(list_01) 

ラインを作成します。私が記述したコードは、私の現在のコードと非常によく似ていて、どのように動くべきかを示しています。私はこれがかなり基本的なコードであるべきだと理解していますが、私はエラーが発生しており、どのように動作するべきかを理解できません。

+2

'セット[0 [0]]'あなたはインデックス整数( 'ことはできませんが、仕事に行くされていないような何かを行います0 [0] ')。おそらく 'dataset [0] [0]'を意味しましたか?なぜネストされた形式ですか? –

+0

データセットにアクセスする方法が間違っているようです。 'dataset [0 [1]]'は 'dataset [0] [1]'だったはずです。 '[0 [1]]'は数字であったはずの本当のインデックスではありません。 – r3ign

+0

理解を深めるには[この回答](http://stackoverflow.com/a/27527429/3209112)を参照してください。 – ABcDexter

答えて

3

ネストされたリストにアクセスするための構文が間違っています。代わりに

dataset[0[0]] 

のあなたは

dataset[0][0] 

を行う必要がある。しかし、一般的には、リストは、このための合理的なデータ型ではありません。辞書には、多くの理にかなって:その後、

moves = { 
    "Little line": 15, 
    "Long line": 20, 
    # etc. 
    } 

def draw_line(dataset): 
    left(dataset[0]) 
    forward(25)