python對(duì)兩個(gè)數(shù)組進(jìn)行合并排列處理的兩種方法
前言
如何使用python對(duì)兩個(gè)數(shù)組(列表)進(jìn)行合并(合并為一個(gè)數(shù)組),并按照從小到大的順序進(jìn)行排列?
我們先隨意寫(xiě)兩個(gè)數(shù)組:arr1和arr2。
第一種方法:
先使用extend函數(shù)將arr1和arr2合并為一個(gè)數(shù)組,再使用sort函數(shù)將新arr1按照從小到大的順序進(jìn)行排列。
# 第一種方式 arr1 = [1, 4, 2, 3, 7, 6, 9] arr2 = [3, 6, 5, 7, 9, 8] print(arr1) print(arr2) arr1.extend(arr2) #使用extend函數(shù)進(jìn)行拼接 arr1.sort(reverse=False) print(arr1)
運(yùn)行結(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]進(jìn)程已結(jié)束,退出代碼0
為什么不使用append函數(shù)運(yùn)行?????
我們可以嘗試運(yùn)行一下。
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]]進(jìn)程已結(jié)束,退出代碼0
由上可知,它并不能將兩個(gè)數(shù)組拼接,而是合成了一個(gè)二維數(shù)組。
第二種方法:
使用模擬指針合并為一個(gè)數(shù)組。我們可以通過(guò)一個(gè)數(shù)組(列表)中每個(gè)元素的下標(biāo)來(lái)找出對(duì)應(yīng)的值,那么儲(chǔ)存這個(gè)元素位置的下標(biāo)值的變量可以視作一個(gè)指針,但并不是真正意義上的指針。這里寫(xiě)出來(lái)只是為了能提供一種新的思路。
先sort將兩個(gè)數(shù)組排序,再利用for循環(huán)進(jìn)行拼接。
arr1 = [1, 4, 2, 3, 7, 6, 9]
arr2 = [3, 6, 5, 7, 9, 8]
arr1.sort(reverse=False) # 若為T(mén)rue,則是從大到小排列
arr2.sort(reverse=False)
ind = 0
ans = arr1.copy()
for i in range(0, len(arr2)):
while ind < len(arr1): # ind的范圍不能超過(guò)數(shù)組元素下標(biāo)的最大值
if arr2[i] <= arr1[ind]:
ans.insert(ind + i, arr2[i]) # 向第一個(gè)數(shù)組中插入第二個(gè)數(shù)組中的數(shù)
break
else:
ind += 1 # 如果ind指向的數(shù)比i指向的數(shù)小,則ind向后一位
else:
ans = ans + arr2[i:]
print(ans)運(yùn)行結(jié)果如下:
[1, 2, 3, 3, 4, 5, 6, 6, 7, 7, 8, 9, 9]
進(jìn)程已結(jié)束,退出代碼0
補(bǔ)充:python中多個(gè)數(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對(duì)兩個(gè)數(shù)組進(jìn)行合并排列處理的兩種方法的文章就介紹到這了,更多相關(guān)python數(shù)組合并排列內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)定時(shí)壓縮指定文件夾發(fā)送郵件,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-04-04
python庫(kù)pydantic的簡(jiǎn)易入門(mén)教程
pydantic庫(kù)是一種常用的用于數(shù)據(jù)接口schema定義與檢查的庫(kù),通過(guò)pydantic庫(kù),我們可以更為規(guī)范地定義和使用數(shù)據(jù)接口,下面這篇文章主要給大家介紹了關(guān)于python庫(kù)pydantic的簡(jiǎn)易入門(mén)教程,需要的朋友可以參考下2022-03-03
pythonfor循環(huán)中range與len區(qū)別
這篇文章主要介紹了pythonfor循環(huán)中range與len區(qū)別,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
利用python list完成最簡(jiǎn)單的DB連接池方法
這篇文章主要介紹了利用python list完成最簡(jiǎn)單的DB連接池方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-08-08
pytorch實(shí)現(xiàn)手寫(xiě)數(shù)字圖片識(shí)別
這篇文章主要為大家詳細(xì)介紹了pytorch實(shí)現(xiàn)手寫(xiě)數(shù)字圖片識(shí)別,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
Django同時(shí)連接多種數(shù)據(jù)庫(kù)的實(shí)現(xiàn)
在開(kāi)發(fā)Django項(xiàng)目的時(shí)候,很多時(shí)候都是使用一個(gè)數(shù)據(jù)庫(kù),即settings 中只有default數(shù)據(jù)庫(kù),但是有一些項(xiàng)目確實(shí)也需要使用多個(gè)數(shù)據(jù)庫(kù),本文主要介紹了Django同時(shí)連接多種數(shù)據(jù)庫(kù)的實(shí)現(xiàn),感興趣的可以了解一下2023-11-11
Python多進(jìn)程協(xié)作模擬實(shí)現(xiàn)流程
當(dāng)多個(gè)進(jìn)程使用同一份數(shù)據(jù)資源的時(shí)候,因?yàn)檫M(jìn)程的運(yùn)行沒(méi)有順序,運(yùn)行起來(lái)也無(wú)法控制,如果不加以干預(yù),往往會(huì)引發(fā)數(shù)據(jù)安全或順序混亂的問(wèn)題,所以要在多個(gè)進(jìn)程讀寫(xiě)共享數(shù)據(jù)資源的時(shí)候加以適當(dāng)?shù)牟呗?,?lái)保證數(shù)據(jù)的一致性問(wèn)題2023-01-01

