在列表中创建一个列表 - 不工作

问题描述:

好吧,所以我有一个问题,我需要从我已经拆分的列表中创建另一个列表。这是代码。在列表中创建一个列表 - 不工作

def lists(): 
    instructionList = instructions() 
    Lists = instructionList.split('\n') 
    Instructions = [] 
    for values1 in Lists: 
    Instructions = Instructions + [values1.split(",")] 
    for values2 in Instructions: 
     newLists = [] 
     newLists = newLists + [values2.split(" ")] 
    print Instructions [3] 

当我创建指令表它的工作原理,但是当我尝试这进一步创造newLists它给了我这个错误=>是错误:“名单”对象有没有属性“分裂” 属性未找到。 您正试图访问不存在的对象的一部分。

我需要继续打破同样的列表。此外,我对此很新,所以请向我详细解释一些事情。

+0

使用'append()'将值添加到列表中。 – squiguy 2013-05-05 19:41:27

+0

我不想添加值我想要使用xxx.split来打破列表。但它不会继续让我这样做 – Danrex 2013-05-05 19:44:42

因为值2不是一个列表,它是指令中的一个变量!像指令[0]等

+0

那么为什么值1工作呢?我不是在质疑你的困惑,我不知道如何解决它? – Danrex 2013-05-05 19:56:31

问题是,values1.split(",")评估到一个列表,然后您将其放入另一个列表并追加到Instructions。变量Instructions然后保存列表的列表。因此,分配给values2的每个元素都将是类型列表。

所以,如果你原来的instructions样子:"a,b,c\nx,y,z\n"

Lists最终看起来像:["a,b,c" , "x,y,z"]

进入外环,values1首先是:"a,b,c"

所以,Instructions = Instructions + [values1.split(",")]给出:[ ["a" , "b" , "c"] ]

然后,当你进入内部循环时,values2起始为:[ "a" , "b" , "c" ]

换句话说,这是一个不支持拆分的列表。

除此之外,我实际上并不清楚你想用这段代码做什么(内循环的目的是什么?)。如果您的目标是获取列表清单,请完全删除该内部循环。如果你想要一个扁平列表,去掉[values1.split(",")周围的方括号,这样你只需追加两个列表(并再次删除内部循环)。