作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有一个表单列表:
list = [[3, 1], [3, 2], [3, 3]]
我想将它分成两个列表,一个包含每个子列表的 x 值,一个包含每个子列表的 y 值。
我目前有这个:
x = y = []
for sublist in list:
x.append(sublist[0])
y.append(sublist[1])
但这会返回这个,我不知道为什么:
x = [3, 1, 3, 2, 3, 3]
y = [3, 1, 3, 2, 3, 3]
最佳答案
通过执行 x = y = []
您正在创建 x
和 y
并将它们引用到同一个列表,因此错误输出. (下图对象ID相同)
>>> x = y = []
>>> id(x)
43842656
>>> id(y)
43842656
如果你修复它,你会得到正确的结果。
>>> x = []
>>> y = []
>>> for sublist in lst:
x.append(sublist[0])
y.append(sublist[1])
>>> x
[3, 3, 3]
>>> y
[1, 2, 3]
尽管如此,这可以变得更容易。
x,y = zip(*lst)
P.S. - 请不要使用 list
作为变量名,它会隐藏内置函数。
关于python - 如何在python中附加子列表的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17795613/
我是一名优秀的程序员,十分优秀!