如何在python中追加子列表的元素

Bra*_*ady 5 python list

我有一个表格列表:

list = [[3, 1], [3, 2], [3, 3]]
Run Code Online (Sandbox Code Playgroud)

我想将它分成两个列表,一个列表中每个子列表的x值,另一个列表中每个子列表的y值.

我目前有这个:

x = y = []
for sublist in list:
    x.append(sublist[0])
    y.append(sublist[1])
Run Code Online (Sandbox Code Playgroud)

但是这会返回这个,我不知道为什么:

x = [3, 1, 3, 2, 3, 3]
y = [3, 1, 3, 2, 3, 3]
Run Code Online (Sandbox Code Playgroud)

Suk*_*lra 10

通过执行x = y = []您创建x并将y它们引用到同一列表,因此输出错误.(对象ID在下面相同)

>>> x = y = []
>>> id(x)
43842656
>>> id(y)
43842656
Run Code Online (Sandbox Code Playgroud)

如果你解决了这个问题,你会得到正确的结果.

>>> x = []
>>> y = []
>>> for sublist in lst:
        x.append(sublist[0])
        y.append(sublist[1])


>>> x
[3, 3, 3]
>>> y
[1, 2, 3]
Run Code Online (Sandbox Code Playgroud)

虽然这可以通过这样做变得更容易.

x,y = zip(*lst)

PS - 请不要使用list变量名称,它会影响内置.

  • 好好利用`id`.关于`list`的好点. (4认同)