2017-04-17 34 views
0

我有几个列出了构建在这些名单我想创建一个定义行的创建功能之后的代码后来如下在使用字符串列表的if语句

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)