我有两个列表:
>>> 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)