[英]Python 2D list slice
我環顧四周,找不到任何具體的東西,所以這里有:
我有一份清單清單:
S = [[3,4],[6,7],[10,12]]
我想將第i個索引元素的第0個索引添加到另一個列表的末尾:
R = [5,6,7]
通常使用一維列表我可以說:
R = R + S[i:]
並從第i個索引中獲取所有元素,但我想要2D S的第i個索引的第0個索引。如果我們從i = 1開始,我最終會得到:
R = [5,6,7,6,10]
另外,我不想使用for循環我想要一個可以工作的列表切片方法(如果有的話),因為它需要在一定的范圍內。
您可以使用zip
來轉置矩陣:
>>> S
[[3, 4], [6, 7], [10, 12]]
>>> zip(*S)
[(3, 6, 10), (4, 7, 12)]
然后切片換位:
>>> j=0
>>> i=1
>>> zip(*S)[j][i:]
(6, 10)
元組是可迭代的,因此連接將與列表一起使用:
>>> R = [5,6,7]
>>> R+=zip(*S)[j][i:]
>>> R
[5, 6, 7, 6, 10]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.