3

我有两个清单:

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

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

>>> c = (a,b)

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

我试过了:

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

和许多其他事情,但无法弄清楚。

4

3 回答 3

4

您可以使用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')]

然后,您可以通过遍历元组列表来分别获取问题和答案(如果需要)。

于 2013-11-06T13:18:07.723 回答
3

您可以使用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')]
于 2013-11-06T13:18:17.693 回答
1

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

您可以创建一个新元组,它由旧元组元素的正确切片组成:

newtuple = tuple(elem[i:j+1] for elem in c)
于 2013-11-06T13:19:01.947 回答