1

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

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 时,它给了我这个错误=> 错误是:'list' 对象没有属性 'split' 找不到属性。您正在尝试访问不存在的对象的一部分。

我需要继续分解相同的列表。另外我对此很陌生,所以请仔细向我解释。

4

2 回答 2

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(",")以便您只附加两个列表(并且再次删除该内部循环)。

于 2013-05-05T19:57:17.193 回答
-1

因为 values2 不是列表,所以它是指令中的变量!像指令[0]等

于 2013-05-05T19:44:52.617 回答