Python 二维列表切片

标签 python list python-2.7 slice

我环顾四周,找不到这么具体的东西,所以这里是:

我有一个列表列表:

S = [[3,4],[6,7],[10,12]]

我想将第 i 个索引元素的第 0 个索引添加到另一个列表的末尾:

R = [5,6,7]

通常对于一维列表我可以说:

R = R + S[i:]

并获取第 i 个索引中的所有元素,但我想要 2D S 的第 i 个索引的第 0 个索引。如果我们从 i = 1 开始,我最终会得到:

R = [5,6,7,6,10]

此外,我不想使用 for 循环,我想要一个可以工作的列表切片方法(如果有的话),因为它需要在某个范围内。

最佳答案

您可以使用zip 转置矩阵:

>>> S
[[3, 4], [6, 7], [10, 12]]
>>> zip(*S)
[(3, 6, 10), (4, 7, 12)]

然后切片转置:

>>> j=0
>>> i=1
>>> zip(*S)[j][i:]
(6, 10)

元组是可迭代的,因此串联可以与列表一起使用:

>>> R = [5,6,7]
>>> R+=zip(*S)[j][i:]
>>> R
[5, 6, 7, 6, 10]

关于Python 二维列表切片,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33714135/

相关文章:

R - 帮助将嵌套列表(?)转换为 data.frame

python-2.7 - flask 登录可重复使用的 cookies

python - 将 nose @attr 附加到测试名称

python - 如何使用 all() 内置函数?

python - 使用 Python 在 Lambda 中处理 S3 桶触发事件

python - python c扩展模块中没有返回值的方法

python - 我实现的 for 循环超出范围 - 不确定问题是什么

python - 在嵌套列表中查找列表具有最大的总和值

python - 如何从命令行运行不同的python函数

python - 用cartopy绘制大圆路径