簡體   English   中英

Python如何獲取二維數組的子集?

[英]Python how to get a subset of a two-dimensional array?

我有兩個清單:

>>> 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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM