當前位置:首頁 » 編程語言 » python數組運算

python數組運算

發布時間: 2023-05-16 20:06:22

1. python怎麼用數組來降低時間復雜度

1. 使用數組代替循環

在一些需要遍歷多次的操作中,使用數組可以代替循環,從而降低時間復雜度。例如,在計算一個數組中所有元素的和時,可以使用如下代碼:

sum = 0
for i in range(len(arr)):
sum += arr[i]

可以使用sum函數來代替循環:

sum = sum(arr)

2. 使用數組代替遞歸

在一些遞歸操作中,使用數組可以代替遞歸,從而降低時間復雜度。例如,在計算斐波那契數列的第n項時,可以使用如下代碼:

def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)

可以使用數組來代替遞歸:

def fib(n):
if n <= 1:
return n
arr = [0, 1]
for i in range(2, n+1):
arr.append(arr[i-1] + arr[i-2])
return arr[n]

3. 使用數拆攜櫻組代替字典

在一些需要查找操作的場景中,使用數組可以代替字典,從而降低時間復雜度。例如,在查找一個字元串中出現次數最多的字元時,可以使用如下代碼:

s = 'abcccddddd'
count = {}
for c in s:
if c in count:
count[c] += 1
else:
count[c] = 1
max_char = max(count, key=count.get)

可以使用數組來代替字典:

s = 'abcccddddd'
count = [0] * 26
for c in s:
count[ord(c) - ord('a')] += 1
max_char = chr(ord('a') + count.index(max(count)))

4. 使用數組代替集合

在一些需要判斷元素是否存在的場景中隱孫,使用數組可以代替集合,從而降低時間復雜度。例如,在判斷一個數組中是否存在重復元素時,可以使用如下代碼:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
if len(set(arr)) == len(arr):
print('No plicates')
else:
print('Duplicates exist')

可以使用數組來旅叢代替集合:

arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 1]
count = [0] * 10
for x in arr:
if count[x-1] == 1:
print('Duplicates exist')
break
else:
count[x-1] = 1
else:
print('No plicates')

2. Python中數組的基本操作

先定義一個數組列表:

列表合並也可以用+,但是用+的話,會產生一個新的列表(當然也可以賦值給任何的變數),而extend則只是修改了原來的對象

只讀數組,只能查看不能編輯,列表的切片操作同樣適於元組。

表達方式:tuple=("元素1","元素2","元素3"),中間同樣用,隔開

特殊的元組:tupleZero=()空元組

                        tupleOne=("元素1",)  只有一個元素,後面要跟一個,(注意好的習慣的養成)

作用:1.對於一些不想被修改的元素,可以放在元組裡面

        2.元組可以在映射(和集合的成員)中當作鍵使用,而列表不行

        3.元組作為內建函數和方法的返回值

enumerate(列表對象,返回標簽起始值(默認為零))

上面的例子可以看出,返回的i是一個元組,如果不想要元組的話,可以用兩個參數接收:

3. Python里怎麼把數組里的數字用於計算和比較

for i in list: #list--你的array
if i > a: #a--用來比較的數值
print "數組數值大於比較數值"
else:
print "數組數值小於等於比較數值"

4. Python二維數組運算

二維數組示例:
a=[[1,2,3],[4,5,6],[7,8,9]]
print a
print a[0]
print a[1]
print a[2]
print a[0][0],a[0][1],a[0][2]
sum=0
for i in range(0,3):
for j in range(0,3):
sum=sum+a[i][j]
print sum

5. 對Python中數組的幾種使用方法總結

對Python中數組的幾種使用方法總結
今天小編就為大家分享一篇對Python中數組的幾種使用方法總結,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
二維數組的初始化
matirx_done = [[0 for i in range(0, len(matirx))]for j in range(0, len(matirx[0]))]
就將其初始化為一個與matrix相同大小的元素全為 0 的矩陣
數組的多級排序
在數組 idea_collect = [[3, 1, 2], [3, 2, 1], [3, 2, 2], [3, 1, 1]] 中, 先按照第二項排列, 再按照第三項倒序排列 可寫為:
idea_collect.sort(key=lambda x: (x[1], -x[2]))
其中, x[1] 代表第二項正序排列, -x[2] 代表第三項倒序排列
排列結果為 [[3, 1, 2], [3, 1, 1], [3, 2, 2], [3, 2, 1]]
在一個 class 中多個函數不傳參使用同一個數組
如例所示:
class Partition:
def __init__(self):
self.num_complete = []

def partition(self, num, start, end):
self.num_compelete = num

def partition_core(self):
del self.num_compelete[0]
其中,self.num_compelete就是 class 中兩個函數同時可以直接調用的數組, 不過最好先在def __init__中聲明這個數組
以上這篇對Python中數組的幾種使用方法總結就是小編分享給大家的全部內容了

6. python如何計算數組內存

數組定義為存儲在連續內存位置的項目的集合。這是一個可以容納固定數量項目的容器, 這些項目應為同一類型。數組在大多數編程語言(例如C / C ++, JavaScript等)中都很流行。

數組是將多個相同類型的項存儲在一起的想法, 並且只需在基本值上添加一個偏移量, 就可以更輕松地計算每個元素的位置。數組的組合可以通過減少代碼的整體大小來節省大量時間。它用於在單個變數中存儲多個值。如果你有一個存儲在其相應變數中的項目列表, 如下所示:

car1 =」蘭博基尼」

car2 =」布加迪」

car3 =」 Koenigsegg」

如果要遍歷汽車並找到特定的汽車, 可以使用該數組。

數組可以在Python中由名為array的模塊處理。當我們只需要操作特定的數據值時, 這很有用。以下是了解數組概念的術語:

元素-存儲在數組中的每個項目稱為元素。

索引-數組中元素的位置具有數字索引, 該數字索引用於標識元素的位置。

數組表示

數組可以用各種方式和不同的語言聲明。應考慮的重點如下:

索引從0開始。

我們可以通過其索引訪問每個元素。

數組的長度定義了存儲元素的能力。

數組運算

數組支持的一些基本操作如下:

遍歷-逐一列印所有元素。

插入-在給定的索引處添加一個元素。

刪除-刪除給定索引處的元素。

搜索-它使用給定的索引或值搜索元素。

更新-更新給定索引處的元素。

7. 怎樣用python將數組里的數從高到低排序

1、首先我們定義一個列表輸入一串大小不一的數字。

8. python怎麼操作多維數組元素

在Python中,一個像這樣的多維表格可以通過「序列的序列」實現。一個表格是行的序列。每一行又是獨立單元格的序列。這類似於我們使用的數學記號,在數學里我們用Ai,j,而在Python里我們使用A[i][j],代表矩陣的第i行第j列。

這看起來非常像「元組的列表」(Lists of Tuples)。

「列表的列表」示例

我們可以使用嵌套的列表推導式(list comprehension)創建一個表格。 下面的例子創建了一個「序列的序列」構成的表格,並為表格的每一個單元格賦值。
table= [ [ 0 for i in range(6) ] for j in range(6) ]
print table
for d1 in range(6):
for d2 in range(6):
table[d1][d2]= d1+d2+2
print table
123456

程序的輸出結果如下:
[[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0]]
[[2, 3, 4, 5, 6, 7], [3, 4, 5, 6, 7, 8], [4, 5, 6, 7, 8, 9],
[5, 6, 7, 8, 9, 10], [6, 7, 8, 9, 10, 11], [7, 8, 9, 10, 11, 12]]
1234

這個程序做了兩件事:創建了一個6 × 6的全0表格。 然後使用兩枚骰子的可能組合的數值填充表格。 這並非完成此功能最有效的方式,但我們通過這個簡單的例子來演示幾項技術。我們仔細看一下程序的前後兩部分。

程序的第一部分創建並輸出了一個包含6個元素的列表,我們稱之為「表格」;表格中的每一個元素都是一個包含6個0元素的列表。它使用列表推導式,對
於范圍從0到6的每一個j都創建對象。每一個對象都是一個0元素列表,由i變數從0到6遍歷產生。初始化完成之後,列印輸出二維全0表格。

推導式可以從里向外閱讀,就像一個普通表達式一樣。內層列表[ 0 for i in range(6) ]創建了一個包含6個0的簡單列表。外層列表[ [...] for j in range(6) ]創建了這些內層列表的6個深拷貝。

程序的第2個部分對2個骰子的每一個組合進行迭代,填充表格的每一個單元格。這由兩層嵌套循環實現,每一個循環迭代一個骰子。外層循環枚舉第一個骰子的所有可能值d1。內層循環枚舉第二個骰子d2。

更新每一個單元格時需要通過table[d1]選擇每一行;這是一個包含6個值的列表。這個列表中選定的單元格通過...[d2]進行選擇。我們將擲骰子的值賦給這個單元格,d1+d2+2

其他示例

列印出的列表的列表不太容易閱讀。下面的循環會以一種更加可讀的形式顯示表格。
>>>
for row in table:

...
print row

...
[2, 3, 4, 5, 6, 7]
[3, 4, 5, 6, 7, 8]
[4, 5, 6, 7, 8, 9]
[5, 6, 7, 8, 9, 10]
[6, 7, 8, 9, 10, 11]
[7, 8, 9, 10, 11, 12]
12345678910111213

作為練習,讀者可以試著在列印列表內容時,再列印出行和列的表頭。提示一下,使用"%2d" % value字元串運算符可以列印出固定長度的數字格式。

顯示索引值(Explicit Index Values)

我們接下來對骰子表格進行匯總統計,得出累計頻率表。我們使用一個包含13個元素的列表(下標從0到12)表示每一個骰子值的出現頻率。觀察可知骰子值2在矩陣中只出現了一次,因此我們期望fq[2]的值為1。遍歷矩陣中的每一個單元格,得出累計頻率表。
fq= 13 * [0]
for i in range(6):
for j in range(6):
c= table[i][j]
fq[ c ] += 1
12345

使用下標i選出表格中的行,用下標j從行中選出一列,得到單元格c。然後用fq統計頻率。

這看起來非常的數學和規范。Python提供了另外一種更簡單一些的方式。

使用列表迭代器而非下標

表格是列表的列表,可以採用無下標的for循環遍歷列表元素。
fq= 13 * [0]
print fq
for row in table:
for c in row:
fq[c] += 1
print fq[2:]

熱點內容
愛膚密碼多少錢 發布:2025-07-16 09:52:51 瀏覽:616
如何訪問電腦工作組 發布:2025-07-16 09:39:24 瀏覽:182
動態優先權演算法 發布:2025-07-16 09:39:02 瀏覽:201
火車wifi密碼是多少啊 發布:2025-07-16 09:35:46 瀏覽:756
sql的視圖是從中導出的 發布:2025-07-16 09:31:34 瀏覽:784
安卓如何打開shell窗口 發布:2025-07-16 09:28:09 瀏覽:313
華為榮耀備忘錄文件夾 發布:2025-07-16 09:23:23 瀏覽:972
基於特徵匹配演算法 發布:2025-07-16 09:18:23 瀏覽:46
夢香神奇寶貝伺服器的ip 發布:2025-07-16 09:14:07 瀏覽:212
電子密碼手套箱是什麼 發布:2025-07-16 09:13:27 瀏覽:799