網站首頁 編程語言 正文
一、Python用什么表達二維數組
嚴格意義上說,Python中并沒有數組的概念,Python中表達一組數據有多種形式,例如list,tuple,set等數據結構都可以表達一組數,并且這組數也沒有C和C++中數組的的同質限制,這些數可以是任何一種數據類型。
以list為例(list又叫列表),要想實現一個所謂的二維數組(有行有列),可以使用嵌套list來實現。例如:要想實現一個如
的一個2行3列的二維數組,可以使用如下嵌套list來表達:
L = [[1, 2, 3], [4, 5, 6]]
二、如何初始化一個二維數組
在很多應用場景下,二維數組的數據是從鍵盤或者其他什么文件中輸入的。這時就迫切需要初始化一個二維數組,等待數據的錄入。
2.1 利用list自身進行構造
list自身的構造函數形式多種多樣。想構建一個二維數組自然并非難事。
例如,想要構建一個m行n列的二維數組??梢赃@樣初始化。
L = [[] * n] * m
展示結果如下:
如果想要給一個初始化的值,可以寫成:
L = [[0] * n] * m
則:
2.2 利用傳統的list的append方法,通過迭代構造
m = 2 #2行
n = 3 #3列
l = 0 #行從0開始
mat = [] # 定義一個二維數組mat
while l < m:
r = 0 #列從0開始
line = [] #line存儲每一行數據
while r < n:
line.append(0) #裝載行數據
r = r + 1
mat.append(line) #按行裝載二維數組
l = l + 1
print(mat)
得到的結果依然為:
2.3利用numpy包構建二維數組(矩陣)
可以使用numpy包來構建二維數組,例如要構建一個m行n列的初始化為0二維數組,可以編寫程序:
m = 3
n = 4
mat = np.zeros((m, n))
print(mat)
結果為:
類似的:
構建一個m行n列的初始化為0二維數組:
m = 3
n = 4
mat = np.ones((m, n))
print(mat)
?構建一個m行n列的初始化為0-1隨機數的二維數組:
m = 3
n = 4
mat = np.random.random((m, n))
print(mat)
?構建一個m行n列的初始化為1-11步長為2的二維數組:
m = 2
n = 3
mat = np.arange(1, 12, 2).reshape(m, n)
print(mat)
結果是:
構建一個m行n列的空的二維數組:
m = 2
n = 3
mat = np.empty((m, n))
print(mat)
但注意,結果并不為空,而是一些極小的浮點數,并沒有實際意義。
三、操作二維數組
如果你用的是list,那么操作二維數組和其他語言沒什么區別。也是通過方括號下標來獲取單個數據,也是通過for循環迭代來遍歷二維數組。這里不再贅述。
總結
原文鏈接:https://blog.csdn.net/oJinGangZuan/article/details/126870747
相關推薦
- 2022-12-24 C++中類的三種訪問權限解析:private、public與protect_C 語言
- 2022-02-25 C語言函數棧幀的創建和銷毀介紹_C 語言
- 2022-04-09 Solr 檢索結果集List<SolrDocument> 轉換為指定業務對象總結
- 2022-08-14 hyper-v如何配置NAT網絡的實現_Hyper-V
- 2022-08-30 C語言深入詳解四大內存函數的使用_C 語言
- 2023-12-25 Spring中使用注解開發
- 2022-10-16 python中列表添加元素的幾種方式(+、append()、extend())_python
- 2022-10-22 PostgreSql生產級別數據庫安裝要注意事項_PostgreSQL
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支