首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python2D列表切片

Python2D列表切片
EN

Stack Overflow用户
提问于 2015-11-14 22:26:52
回答 2查看 5.9K关注 0票数 6

我环顾四周,却找不到这么具体的东西,所以就这样说:

我有一份清单:

代码语言:javascript
复制
S = [[3,4],[6,7],[10,12]]

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

代码语言:javascript
复制
R = [5,6,7]

通常有一张一维清单,我可以说:

代码语言:javascript
复制
R = R + S[i:]

并从ith索引中提取所有元素,但我想要2D S的ith索引的第0次索引,如果我们从i=1开始,我将以:

代码语言:javascript
复制
R = [5,6,7,6,10]

另外,我不想使用list切片方法(如果有),因为它需要在一定的范围内。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-14 23:44:58

您可以使用zip转置矩阵:

代码语言:javascript
复制
>>> S
[[3, 4], [6, 7], [10, 12]]
>>> zip(*S)
[(3, 6, 10), (4, 7, 12)]

然后切片换位:

代码语言:javascript
复制
>>> j=0
>>> i=1
>>> zip(*S)[j][i:]
(6, 10)

元组是可迭代的,所以级联将处理一个列表:

代码语言:javascript
复制
>>> R = [5,6,7]
>>> R+=zip(*S)[j][i:]
>>> R
[5, 6, 7, 6, 10]
票数 5
EN

Stack Overflow用户

发布于 2015-11-14 22:43:47

正如@jonrsharpe所提到的,numpy将为您完成以下任务:

代码语言:javascript
复制
import numpy as np
# Create two arrays
S = np.asarray([[3,4],[6,7],[10,12]])
R = np.asarray([5, 6, 7])
# Slice the S array
i = 1
sliced_S = S[i:, 0]
# Concatenate the arrays
R = np.concatenate((R, sliced_S))

看看numpy令人印象深刻的文档,尤其是标引

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33714135

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档