python對兩個數(shù)組進行合并排列處理的兩種方法
前言
如何使用python對兩個數(shù)組(列表)進行合并(合并為一個數(shù)組),并按照從小到大的順序進行排列?
我們先隨意寫兩個數(shù)組:arr1和arr2。
第一種方法:
先使用extend函數(shù)將arr1和arr2合并為一個數(shù)組,再使用sort函數(shù)將新arr1按照從小到大的順序進行排列。
# 第一種方式 arr1 = [1, 4, 2, 3, 7, 6, 9] arr2 = [3, 6, 5, 7, 9, 8] print(arr1) print(arr2) arr1.extend(arr2) #使用extend函數(shù)進行拼接 arr1.sort(reverse=False) print(arr1)
運行結(jié)果如下:
[1, 4, 2, 3, 7, 6, 9]
[3, 6, 5, 7, 9, 8]
[1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 9, 9]進程已結(jié)束,退出代碼0
為什么不使用append函數(shù)運行?????
我們可以嘗試運行一下。
arr1 = [1, 4, 2, 3, 7, 6, 9] arr2 = [3, 6, 5, 7, 9, 8] print(arr1) print(arr2) arr1.append(arr2) print(arr1)
最后得到的結(jié)果是:
[1, 4, 2, 3, 7, 6, 9]
[3, 6, 5, 7, 9, 8]
[1, 4, 2, 3, 7, 6, 9, [3, 6, 5, 7, 9, 8]]進程已結(jié)束,退出代碼0
由上可知,它并不能將兩個數(shù)組拼接,而是合成了一個二維數(shù)組。
第二種方法:
使用模擬指針合并為一個數(shù)組。我們可以通過一個數(shù)組(列表)中每個元素的下標(biāo)來找出對應(yīng)的值,那么儲存這個元素位置的下標(biāo)值的變量可以視作一個指針,但并不是真正意義上的指針。這里寫出來只是為了能提供一種新的思路。
先sort將兩個數(shù)組排序,再利用for循環(huán)進行拼接。
arr1 = [1, 4, 2, 3, 7, 6, 9]
arr2 = [3, 6, 5, 7, 9, 8]
arr1.sort(reverse=False) # 若為True,則是從大到小排列
arr2.sort(reverse=False)
ind = 0
ans = arr1.copy()
for i in range(0, len(arr2)):
while ind < len(arr1): # ind的范圍不能超過數(shù)組元素下標(biāo)的最大值
if arr2[i] <= arr1[ind]:
ans.insert(ind + i, arr2[i]) # 向第一個數(shù)組中插入第二個數(shù)組中的數(shù)
break
else:
ind += 1 # 如果ind指向的數(shù)比i指向的數(shù)小,則ind向后一位
else:
ans = ans + arr2[i:]
print(ans)運行結(jié)果如下:
[1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 9, 9]
進程已結(jié)束,退出代碼0
補充:python中多個數(shù)組的行合并以及列合并
import numpy as np
a = [1, 2, 3, 4]
b = [5, 6, 7, 8]
#數(shù)組縱向合并
mergeA = np.vstack((a, b))
print("mergeA: ", mergeA)
#mergeA: ?[[1 2 3 4]
# ? ? ? ? ?[5 6 7 8]]
#數(shù)組橫向合并
mergeB = np.hstack((a, b))
print("mergeB: ", mergeB)
#mergeB: ?[1 2 3 4 5 6 7 8]總結(jié)
到此這篇關(guān)于python對兩個數(shù)組進行合并排列處理的兩種方法的文章就介紹到這了,更多相關(guān)python數(shù)組合并排列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件
這篇文章主要為大家詳細介紹了python實現(xiàn)定時壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04
pythonfor循環(huán)中range與len區(qū)別
這篇文章主要介紹了pythonfor循環(huán)中range與len區(qū)別,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定參考價值,需要的小伙伴可以參考一下2022-06-06
Django同時連接多種數(shù)據(jù)庫的實現(xiàn)
在開發(fā)Django項目的時候,很多時候都是使用一個數(shù)據(jù)庫,即settings 中只有default數(shù)據(jù)庫,但是有一些項目確實也需要使用多個數(shù)據(jù)庫,本文主要介紹了Django同時連接多種數(shù)據(jù)庫的實現(xiàn),感興趣的可以了解一下2023-11-11

