欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python之關(guān)于數(shù)組和列表的區(qū)別及說(shuō)明

 更新時(shí)間:2023年05月22日 15:28:17   作者:季布,  
這篇文章主要介紹了python之關(guān)于數(shù)組和列表的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

python數(shù)組和列表的區(qū)別

列表和數(shù)組的定義

  • 列表用于順序存儲(chǔ)結(jié)構(gòu)。它可以方便、高效的的添加刪除元素,并且列表中的元素可以是多種類(lèi)型。
  • 數(shù)組是一個(gè)同一類(lèi)型的數(shù)據(jù)的有限集合。

數(shù)組是什么?

數(shù)組(Array)是一種線性表數(shù)據(jù)結(jié)構(gòu)。它用一組連續(xù)的內(nèi)存,來(lái)存儲(chǔ)一組具有相同類(lèi)型的數(shù)據(jù)。

  • 優(yōu)點(diǎn):數(shù)組地址是連續(xù)的會(huì)給我們查找數(shù)據(jù)提供了極大的方便,讓我們很容易的就能根據(jù)下標(biāo)找到你需要的數(shù)據(jù),提高了查詢(xún)效率
  • 缺點(diǎn):畢竟我們對(duì)數(shù)組的運(yùn)用不只是查找數(shù)據(jù),還有增加數(shù)據(jù),插入數(shù)據(jù),刪除數(shù)據(jù)等一些操作;由于數(shù)組的特殊性,使得我們?cè)谶M(jìn)行這些操作的時(shí)候不能對(duì)其進(jìn)行直接操作,還要重新開(kāi)辟一個(gè)新的數(shù)組并使其長(zhǎng)度增加來(lái)存放數(shù)據(jù),這樣的工作模式給我們帶來(lái)了很大的不便,影響了效率

**用線性表存儲(chǔ)的數(shù)據(jù)有兩個(gè)特點(diǎn)

  • 存儲(chǔ)的數(shù)據(jù)本身的類(lèi)型一定保持相同,是int型就都是int型,是結(jié)構(gòu)體就都是一種結(jié)構(gòu)體。
  • 數(shù)據(jù)一旦用線性表存儲(chǔ),各個(gè)數(shù)據(jù)元素之間的相對(duì)位置就固定了。

形象地來(lái)看,線性表就是數(shù)據(jù)排成像一條線一樣的結(jié)構(gòu),并且最多只有前和后兩個(gè)方向。數(shù)組、鏈表隊(duì)列、棧等都是線性表結(jié)構(gòu)。

與其對(duì)立的概念是非線性表,如二叉樹(shù)、堆等。在非線性表中,數(shù)據(jù)之間并不是簡(jiǎn)單的前后關(guān)系。

將列表當(dāng)做堆棧使用

列表方法使得列表可以很方便的作為一個(gè)堆棧來(lái)使用,堆棧作為特定的數(shù)據(jù)結(jié)構(gòu),最先進(jìn)入的元素最后一個(gè)被釋放(后進(jìn)先出)。

用 append() 方法可以把一個(gè)元素添加到堆棧頂。

用不指定索引的 pop() 方法可以把一個(gè)元素從堆棧頂釋放出來(lái)

>>> stack = [3, 4, 5]
>>> stack.append(6)
>>> stack.append(7)
>>> stack
[3, 4, 5, 6, 7]
>>> stack.pop()
7
>>> stack
[3, 4, 5, 6]
>>> stack.pop()
6
>>> stack.pop()
5
>>> stack
[3, 4]

將列表當(dāng)作隊(duì)列使用

也可以把列表當(dāng)做隊(duì)列用,只是在隊(duì)列里第一加入的元素,第一個(gè)取出來(lái);但是拿列表用作這樣的目的效率不高。在列表的最后添加或者彈出元素速度快,然而在列表里插入或者從頭部彈出速度卻不快(因?yàn)樗衅渌脑囟嫉靡粋€(gè)一個(gè)地移動(dòng))。

相同點(diǎn):

  • 都可以根據(jù)索引來(lái)取其中的元素;

不同點(diǎn):

  • 列表list中的元素的數(shù)據(jù)類(lèi)型可以不一樣。數(shù)組array里的元素的數(shù)據(jù)類(lèi)型必須一樣;
  • 列表list不可以進(jìn)行數(shù)學(xué)四則運(yùn)算,數(shù)組array可以進(jìn)行數(shù)學(xué)四則運(yùn)算;
  • 相對(duì)于array,列表會(huì)使用更多的存儲(chǔ)空間。
import numpy as np
list1=[1,'a','index']  #list1是列表類(lèi)型
list2 = np.array([1,2,3,4])  #list2是數(shù)組類(lèi)型
print("list",list1,list1[0],'\n','array',list2,list2[0])
結(jié)果
打印結(jié)果:
list [1,'a','index'] 1 
array [1 2 3 4] 1

python數(shù)組和列表相互轉(zhuǎn)化

  • 數(shù)組轉(zhuǎn)化為列表:b=array.tolist()  (把數(shù)組array轉(zhuǎn)化為列表b)
  • 列表轉(zhuǎn)化為數(shù)組:a=np.array(list)  (把列表lis轉(zhuǎn)化為數(shù)組a)

具體代碼如下:

import numpy as np
#1.隨機(jī)生成一個(gè)數(shù)組a
a=np.random.randn(4,3)
print(a)
print(type(a))
#輸出結(jié)果如下:
[[-1.95210222  2.68035264  1.16203014]
 [ 0.38123208  0.2106927   0.44987349]
 [-0.60820225 -0.80682695 -0.32048555]
 [-1.08573498  0.30206573 -0.79167439]]
<class 'numpy.ndarray'>
#2.數(shù)組a轉(zhuǎn)化為列表b
b=a.tolist()
print(b)
print(type(b))
#輸出結(jié)果如下:
[[-1.9521022160725312, 2.6803526394133774, 1.1620301390678258], [0.3812320771527832, 0.2106926970310233, 0.4498734879610045], [-0.6082022489361179, -0.8068269457410441, -0.3204855537284452], [-1.0857349768436102, 0.3020657339426819, -0.7916743865958161]]
<class 'list'>
#3.列表b轉(zhuǎn)化為數(shù)組c
c=np.array(b)
print(c)
print(type(c))
#輸出結(jié)果如下:
[[-1.95210222  2.68035264  1.16203014]
 [ 0.38123208  0.2106927   0.44987349]
 [-0.60820225 -0.80682695 -0.32048555]
 [-1.08573498  0.30206573 -0.79167439]]
<class 'numpy.ndarray'>

總結(jié)

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python request中文亂碼問(wèn)題解決方案

    Python request中文亂碼問(wèn)題解決方案

    這篇文章主要介紹了Python request中文亂碼問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-09-09
  • python異常中else的實(shí)例用法

    python異常中else的實(shí)例用法

    在本篇內(nèi)容里小編給大家分享的是一篇關(guān)于python異常中else的實(shí)例用法,有興趣的朋友們可以跟著學(xué)習(xí)下。
    2021-06-06
  • python批量修改文件夾及其子文件夾下的文件內(nèi)容

    python批量修改文件夾及其子文件夾下的文件內(nèi)容

    這篇文章主要為大家詳細(xì)介紹了python批量修改文件夾及其子文件夾下的文件內(nèi)容,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03
  • 教你使用python畫(huà)一朵花送女朋友

    教你使用python畫(huà)一朵花送女朋友

    這篇文章主要為大家講解如何使用python畫(huà)一朵花,送女朋友,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 詳解Python中表達(dá)式i += x與i = i + x是否等價(jià)

    詳解Python中表達(dá)式i += x與i = i + x是否等價(jià)

    這篇文章主要介紹了關(guān)于Python中表達(dá)式i += x與i = i + x是否等價(jià)的相關(guān)資料,文中通過(guò)示例代碼介紹的很詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,有需要的朋友們下面來(lái)一起看看吧。
    2017-02-02
  • 在Python的Django框架中編寫(xiě)編譯函數(shù)

    在Python的Django框架中編寫(xiě)編譯函數(shù)

    這篇文章主要介紹了在Python的Django框架中編寫(xiě)編譯函數(shù),配合模版標(biāo)簽在模版中進(jìn)行使用<需要的朋友可以參考下
    2015-07-07
  • Django 導(dǎo)出 Excel 代碼的實(shí)例詳解

    Django 導(dǎo)出 Excel 代碼的實(shí)例詳解

    本篇文章主要介紹了Django 導(dǎo)出 Excel 代碼的實(shí)例詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 使用python怎樣產(chǎn)生10個(gè)不同的隨機(jī)數(shù)

    使用python怎樣產(chǎn)生10個(gè)不同的隨機(jī)數(shù)

    這篇文章主要介紹了使用python實(shí)現(xiàn)產(chǎn)生10個(gè)不同的隨機(jī)數(shù)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • Python命名空間namespace及作用域原理解析

    Python命名空間namespace及作用域原理解析

    這篇文章主要介紹了Python命名空間namespace及作用域原理解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • Python的@裝飾器的作用小結(jié)

    Python的@裝飾器的作用小結(jié)

    本文給大家講解Python的@裝飾器的用途,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2021-11-11

最新評(píng)論