python-3.x - 遍历 2d 列表并附加到多个其他列表
问题描述
我有一个二维列表:
lst = [[1,2,3,4,5,6,7,8,9],[11,12,13,14,15]]
我想将二维列表中每个列表的 0 到 N-1 存储在一个单独的列表中,并将 1 到 N 存储在另一个列表中。因此,我创建了两个新列表,它们的长度与二维 lst 相同:
alpha, beta = [[]]*len(lst), [[]]*len(lst)
然后我运行这段代码:
for i in range(len(lst)):
for j in range(len(lst[i])-1):
alpha[i].append(lst[i][j])
beta[i].append(lst[i][j+1])
但是 for 循环似乎每次都在遍历所有列表。
我想得到结果
alpha = [[1,2,3,4,5,6,7,8],[11,12,13,14]]
beta = [[2,3,4,5,6,7,8,9],[12,13,14,15]]
相反,我得到
alpha = [[1,2,3,4,5,6,7,8,11,12,13,14],[1,2,3,4,5,6,7,8,11,12,13,14]]
beta = [[2,3,4,5,6,7,8,9,12,13,14,15],[2,3,4,5,6,7,8,9,12,13,14,15]]
我的代码肯定有问题,我无法弄清楚,感谢任何帮助!
解决方案
我认为列表推导可能会使您的代码更简洁:
alpha = [i[:-1] for i in lst]
beta = [i[1:] for i in lst]
>>> alpha
[[1, 2, 3, 4, 5, 6, 7, 8], [11, 12, 13, 14]]
>>> beta
[[2, 3, 4, 5, 6, 7, 8, 9], [12, 13, 14, 15]]
推荐阅读
- r - 在数据表 R 上查找内部值
- security - 在 istio AuthorizationPolicy 中如何匹配包含查询字符串参数的路径
- dns - 我忘记更新我的域,它进入待删除状态。我现在如何恢复域?
- arrays - 如何从字典中的数组中提取数据?
- google-cloud-speech - 令牌语音到文本
- typescript - 卡在 Hapi(版本-19.0.5)中的文件上传问题以及 json 数据
- amazon-web-services - AWS CloudFormation CodePipeline,ParameterOverrides,将列表传递给嵌套堆栈
- javascript - JS Promises:分配给变量时,Promises 正在执行/解析
- android - ExoPlayer:处理延迟加载播放列表的最佳方法是什么?
- python - db.load_only 不过滤字段