Python 如何获取二维数组的子集



我有两个列表:

>>> a = ["question1", "question2", "question3", "question4", "question5"]
>>> b = ["php html", "html", "html", "java", "php"]

然后我使用以下方法获得了一个 2D 数组:

>>> c = (a,b)

现在,我希望创建一个c子集,以仅保留与问题 i 到 j 对应的行。

我试过了:

c[i:j+1][0:1]

等等很多事情,却想不通。

您可以使用

zip()

>>> a = ["question1", "question2", "question3", "question4", "question5"]
>>> b = ["php html", "html", "html", "java", "php"]
>>> merged = zip(a, b)
>>> merged[0:2]
[('question1', 'php html'), ('question2', 'html')]

然后,您可以通过循环访问元组列表来单独获取问题和答案(如果需要)。

你可以像这样使用zip函数

a = ["question1", "question2", "question3", "question4", "question5"]
b = ["php html", "html", "html", "java", "php"]
c = (a, b)
print zip(*c)[1:3]

输出

[('question2', 'html'), ('question3', 'html')]

Python 并没有真正的 2D 数组(numpy 有,但这不是标准库)。你那里有一个包含两个元素的元组,这两个元素都是列表。

您可以创建一个新元组,该元组由旧元组元素的右侧切片组成:

newtuple = tuple(elem[i:j+1] for elem in c)

最新更新