在列表中创建列表 - 不起作用

时间:2013-05-05 19:40:01

标签: python list split jython

好的,所以我遇到了一个问题,我需要从已经拆分的列表中创建另一个列表。这是代码。

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]

当我创建“说明”列表时,它可以正常工作,但是当我进一步尝试创建新列表时,它会给我这个错误=>错误是:'list'对象没有属性'split' 找不到属性。 您正在尝试访问不存在的对象的一部分。

我需要继续打破同一个列表。我也很新,所以请仔细向我解释。

2 个答案:

答案 0 :(得分:1)

问题是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(",")周围的方括号,这样你只需要附加两个列表(并再次删除那个内部循环)。

答案 1 :(得分:-1)

因为values2不是列表,所以它是Instructions中的变量!喜欢说明[0]等