1. 程式人生 > >python實現二維陣列

python實現二維陣列

python中沒有陣列,所以只能用列表、或字典實現二維陣列

一、列表實現——初始化二維陣列:建立一個3行4列的二維陣列

(1) 暴力建立

mylist = [[0,0,0],

[0,0,0],

[0,0,0],

[0,0,0]]

(2)函式建立

def getMatrix(rows,cols):
    matrix = [[0 for col in range(cols)] for row in range(rows)]
    for i in range(rows):
        for j in range(cols):
            print matrix[i][j],
        print '\n'
(3) 快速建立
myList = [([0] * 3) for i in range(4)]	#初始化為0
myList = [([] * 3) for i in range(4)]	#初始化為空
錯誤建立myList = [[0] * 3] * 4

原因:*4只是把一維陣列複製了四次引用。如果修改mylist[0][1]的值,mylist[2][1]、mylist[3][1]、mylist[4][1]的值都會變。

(4)定義一個巢狀的list表示一個二維陣列,並初始化為這樣:

score = [[0]*3, [0]*3,[0]*3]
print score
這樣在迴圈外就能方便的訪問每個元素了。


相關推薦

python實現陣列

python中沒有陣列,所以只能用列表、或字典實現二維陣列 一、列表實現——初始化二維陣列:建立一個3行4列的二維陣列 (1) 暴力建立 mylist = [[0,0,0], [0,0,0],

關於python實現陣列所有元素求和

今天遇到一個需求,求二維陣列的和,儘量在一行程式碼中完成: 關於二維陣列求和的幾種方法:    a = [[1,2],[3,4],[5,6]]    1.sum(map(sum,a)) #first, map(func,a) 函式是對a中的每一個元素進行sum操作

python使用Counter實現陣列按列(行)統計元素出現個數

主要是用到了 collections 裡面的Counter函式 import numpy as np from collections import Counter rows=10 cols=9 arr=np.random.random_integers(1,10,(10,9))#

python陣列的某行或列排序 (numpy lexsort)

lexsort支援對陣列按指定行或列的順序排序;是間接排序,lexsort不修改原陣列,返回索引。 (對應lexsort 一維陣列的是argsort a.argsort()這麼使用就可以;argsort也不修改原陣列, 返回索引)   預設按最後一行元素有小到大排序, 返回最後

1050 螺旋矩陣(Vector實現陣列

本題要求將給定的 N 個正整數按非遞增的順序,填入“螺旋矩陣”。所謂“螺旋矩陣”,是指從左上角第 1 個格子開始,按順時針螺旋方向填充。要求矩陣的規模為 m 行 n 列,滿足條件:m×n 等於 N;m≥n;且&nbs

Python陣列的建立

習慣了java的Matrix = [][]不知道python怎麼創二維陣列。 先看 python中的二維陣列操作 對最後提出的二維陣列建立方式存在疑問 Matrix = [([0] * 3) for i in range(4)] 為什麼可以用[0]*3?不會淺拷貝嗎?   看了

基於python陣列的建立

在c++中,陣列的建立就是直接寫入就是num[ ][ ]這種方式,但是python的不同方法之間存在著些許的差異。在python中說是陣列,不如說是二維列表。 首先我想講的是在生成列表中所容易犯的各種錯誤: 1. array = [0,0,0] array1 =

【C/C++】用指標實現陣列的傳遞、使用的4種示例,及各種變形。

請看例程。 #include <stdio.h> #include <stdlib.h> /* *func1:用int a[]傳遞二維陣列 *func2:用int a[][10]傳遞二維陣列 *func3:用int *a[10]傳遞二維 *

C++模板程式設計實現陣列

陣列在C語言裡面經常使用,有一個缺陷就是必須在定義的時候就指定大小,一旦申請後這片區域就不能動態的擴充套件。但是很多情況下我們並不知道大小是多少,於是就需要動態分配記憶體來儲存。這裡僅僅是一個小例,希

用js實現陣列的旋轉

我最近因為做了幾個小遊戲,用到了二維陣列,其中有需求將這個二維陣列正翻轉 90°,-90°,180°。 本人是笨人,寫下了存起來。 定義的基本二位陣列渲染出來是這種效果。 現在想實現的結果是下面的效果: 當然可以讓div用position定位,left和top調整。 但是我就想改變陣列的話,

(劍指offer python陣列中的查詢

題目 二維陣列中的查詢 題目描述 在一個二維陣列中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請完成一個函式,輸入這樣的一個二維陣列和一個整數,判斷陣列中是否含有該整數。 例如下面的二維陣列就是每行、每列都遞增排序。如果在

JS實現陣列的深拷貝及外掛程式碼

深拷貝與淺拷貝的介紹 在寫程式碼前先簡短介紹下JS中淺拷貝與深拷貝的區別。 JavaScript中有兩種型別的物件拷貝:淺拷貝(Shallow Copy)、深拷貝(Deep Copy): 深複製和淺複製最根本的區別在於是否是真正獲取了一個物件的複製實體,而不是引用。 淺拷貝——只是拷貝了

Python建立陣列和切片操作

在推薦系統的資料構造時,經常要使用二維陣列,通常先建立元素均為0的陣列,這要使用Numpy模組中的zeros()函式 1.建立一個元素為0的二維陣列: from numpy import * b=zeros((2,3))>> array([[ 0., 0.

遞迴實現陣列輸出

非遞迴實現: private static void findWords(int[][]board ,int index){//index可以不需要了 for (int i = 0; i <board.length ;

Python 旋轉陣列

故事要從前幾個月刷劍指offer的時候說起,那時候遇到過一個關於二維陣列的問題,問題如下 輸入一個矩陣,按照從外向裡以順時針的順序依次打印出每一個數字,例如,如果輸入如下矩陣: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

Java 實現陣列按指定列經行排序

[java] view plaincopyprint? import java.util.*;      publicstaticvoid sortIntArray(int[][] arObjects, finalint[] arOrders)      {    

python儲存陣列到txt檔案中

一個非常繁瑣粗暴的方法,python屬於入門級水平,就醬先備份一下,如果有更好的方法再更新 arrs=[[2,15,48,4,5],[6,7,6,4,1],[2,3,6,6,7],[4,6,8,11,2]] ARRS = [] f=open('testARRS.txt','

java實現陣列排序並定位座標(藉助list)

import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Comparator; public  class test {static

vector的巢狀實現陣列,解決矩陣相乘問題

給定兩個矩陣A和B,要求你計算它們的乘積矩陣AB。需要注意的是,只有規模匹配的矩陣才可以相乘。即若A有Ra行、Ca列,B有Rb行、Cb列,則只有Ca與Rb相等時,兩個矩陣才能相乘。輸入格式:輸入先後給出兩個矩陣A和B。對於每個矩陣,首先在一行中給出其行數R和列數C,隨後R行,每行給出C個整數,以1個空格分隔,

python陣列操作

需要在程式中使用二維陣列,網上找到一種這樣的用法:     #建立一個寬度為3,高度為4的陣列#[[0,0,0], # [0,0,0], # [0,0,0], # [0,0,0]] myList = [[0] * 3] * 4 但是當操作myList[0][1] = 1