python二維list
1. 一些python中的二維數組的操作方法
一些Python中的二維數組的操作方法
這篇文章主要介紹了一些Python中的二維數組的操作方法,是Python學習當中的基礎知識,需要的朋友可以參考下
需要在程序中使用二維數組,網上找到一種這樣的用法:
#創建一個寬度為3,高度為4的數組
#[[0,0,0],
# [0,0,0],
# [0,0,0],
# [0,0,0]]
myList = [[0] * 3] * 4
但是當操作myList[0][1] = 1時,發現整個第二列都被賦值,變成
[[0,1,0],
[0,1,0],
[0,1,0],
[0,1,0]]
為什麼...一時搞不懂,後面翻閱The Python Standard Library 找到答案
list * n—>n shallow copies of list concatenated, n個list的淺拷貝的連接
例:
>>> lists = [[]] * 3
>>> lists
[[], [], []]
>>> lists[0].append(3)
>>> lists
[[3], [3], [3]]
[[]]是一個含有一個空列表元素的列表,所以[[]]*3表示3個指向這個空列表元素的引用,修改任何
一個元素都會改變整個列表:
所以需要用另外一種方式進行創建多維數組,以免淺拷貝:
>>> lists = [[] for i in range(3)]
>>> lists[0].append(3)
>>> lists[1].append(5)
>>> lists[2].append(7)
>>> lists
[[3], [5], [7]]
之前的二維數組創建方式為:
myList = [([0] * 3) for i in range(4)]
2. python 如何定義動態二維數組
追加字元串列表主要的二維列表。由於多維名單基本上列出清單,一個兩維的名單將代表一個單一的清單,其中包含其他列表。 .,因為Python列表是動態的,首先你可以使用「追加」功能容易添加和刪除其他列表:
3. 如何在python中創建二維列表
Python中創建二維列表/數組,即創建一個list,並且這個list的元素還是list。可以用列表解析的方法實現。
創建例子如下:
2d_list=[[0forcolinrange(cols)]forrowinrange(rows)]
其中cols, rows變數替換為你需要的數值即可,例如:
2d_list=[[0forcolinrange(9)]forrowinrange(9)]
#9*9的二維列表
4. 在python中有一個二維list【【wei,1970】,【z,1970】【z,1971】】,想把里邊1970的和1971的分成兩個
value=[['wei',1970],['z',1970],['oo',1971]]
d={}
foriinvalue:
ifi[1]ind:
d[i[1]]=d[i[1]]+[i[0]]
else:
d.setdefault(i[1],[i[0]])
print([vfork,vind.items()])
5. python的二維list問題
list 的 乘法是將裡面的對象復制了一遍,並沒有創建新的對象(object)。比方說
b = [1, 2, 3]
b 是一個 list 對象,如果
a = [b]*3
那麼a就是一個包含三個 b 的列表,這個列表中的每一個對象都是b,所以你修改任意一個對象,實際都是在修改 b本身。用 id() 可以查看對象id,你可以發現a中的每一個元素都是同一個id
>>>b=[0,0,0]
>>>id(b)
47599855534232
>>>a=[b]*3
>>>a
[[0,0,0],[0,0,0],[0,0,0]]
>>>id(a)
47599860614424
>>>id(a[0])
47599855534232
>>>id(a[1])
47599855534232
>>>id(a[2])
47599855534232
>>>id(a[2])==id(b)
True
如果你想a中每一個元素都是不同的對象,可以用下面的代碼:
a=[[0]*3foriinrange(3)]
6. python中的list元組如何按照第二維元素排序
在Python中可以使用sorted函數對list進行排序,但是如果排序的對象是一個包含tuple的list時,sorted函數會使用tuple的第一個元素。
如果想要使用tuple的第二個元素進行排序,可以向sorted函數傳入一個key參數,key參數必須是一個函數,輸入是list的一個元素,輸出最好是一個數字或簡單的字元。
構造這樣一個函數可以使用匿名函數lambda,示例代碼如下:
myList=[('ngeon',7),('winterfell',4),('bran',9),('meelo',6)]
printsorted(myList,key=lambdax:x[1])
#[('winterfell',4),('meelo',6),('ngeon',7),('bran',9)]
7. python二維數組怎麼求交集
本文實例講述了python獲得兩個數組交集、並集、差集的房部分。分享給大家供大家參考。具體如下:
1. 獲取兩個list 的交集
#方法一:
a=[2,3,4,5]
b=[2,5,8]
tmp = [val for val in a if val in b]
print tmp
#[2, 5]
#方法二
print list(set(a).intersection(set(b)))
2. 獲取兩個list 的並集
print list(set(a).union(set(b)))
3. 獲取兩個 list 的差集
print list(set(b).difference(set(a))) # b中有而a中沒有的
通過以上方法,就能處理python list 的交集,並集,差集了。
8. Python中怎麼獲取二維數組中指定列的數據。
解答:
op=open('xx.txt','r')
list=[]
for line in op:
list.append(line)
這樣第一行就是a[0]。
要取出第一行第二個字。
a[0].split(' ')[1]按空格分隔,函數名應該這個。
9. python list中多個二維數組怎麼合並成一個array二維數組
使用循環遍歷,加append插到空數組中