詳解Python中的List
什么是list?
list 是一個(gè)序列!一串?dāng)?shù)據(jù),這個(gè)串可以追加數(shù)據(jù)。
我們可以把它看成大型商場(chǎng)內(nèi),兒童游玩串串車(chē),它就像一趟一趟車(chē)廂一樣,可以掛上去(還能增加車(chē)廂)。
這樣tuple(元組)就是焊死了的串串車(chē)!
在數(shù)據(jù)結(jié)構(gòu)中,我們也學(xué)習(xí)過(guò)鏈表,某種程度上list就是python給出的一個(gè)實(shí)現(xiàn)。
它可以無(wú)限的存放數(shù)據(jù),并通過(guò)下標(biāo)(從0開(kāi)始計(jì)數(shù))獲取特定位置的元素。
說(shuō)這么多我們看看代碼,感受一下:
list_a = [1, 2, 3] list_b = ['hello','lei','學(xué)委', 666]
上面就是python中的list。
list 可以進(jìn)行哪些操作呢?
我們前面tuple試過(guò) + 和 *, 這些list能做嗎?
答案是肯定的。
這里學(xué)委復(fù)制了前面tuple的代碼進(jìn)行更改:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2021/10/31 10:36 下午 # @Author : LeiXueWei # @CSDN/Juejin/Wechat: 雷學(xué)委 # @XueWeiTag: CodingDemo # @File : list_demo.py # @Project : hello a = [1, 2, 3] print(a[0]) t = list(a) print(t[0:2]) print(type(t[0:2])) # <class 'list'> t[0] = 22 # list可以修改對(duì)應(yīng)下標(biāo)的值! a[0] = 22 mylist = list([a, [2, 3]]) print(mylist) ([22, 2, 3], [2, 3]) mylist[0][0] = 100 #這個(gè)可以!真可以! print(mylist) print(type(mylist))
動(dòng)態(tài)長(zhǎng)度參數(shù)傳遞
def show_info_v2(name, title, *info):
print("姓名為:", name)
print("職稱(chēng)為:", title)
print("其他評(píng)價(jià):", info)
show_info_v2('雷學(xué)委', '搬磚大師', "熱愛(ài)技術(shù)", "熱愛(ài)生活")
參數(shù)是否會(huì)被函數(shù)攥改?
我們看看下面的程序即可:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/24 11:39 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學(xué)委
# @XueWeiTag: CodingDemo
# @File : func_call.py
# @Project : hello
def compute_v1(list):
sum = 0
for x in list:
sum += x
list = list + [sum]
print("新地址:", id(list))
return sum
def compute_v2(list):
sum = 0
for x in list:
sum += x
list[0] = list[0] * 100
return sum
_list = [1, 2, 3, 4, 5]
print("調(diào)用計(jì)算函數(shù)v1之前:", _list)
print("調(diào)用計(jì)算函數(shù)v1之前內(nèi)存地址:", id(_list))
print(compute_v1(_list))
print("調(diào)用計(jì)算函數(shù)v1之后:", _list)
print("調(diào)用計(jì)算函數(shù)v1之后內(nèi)存地址:", id(_list))
_list = [1, 2, 3, 4, 5]
print("調(diào)用計(jì)算函數(shù)v2之前:", _list)
print("調(diào)用計(jì)算函數(shù)v2之前內(nèi)存地址:", id(_list))
print(compute_v2(_list))
print("調(diào)用計(jì)算函數(shù)v2之后:", _list)
print("調(diào)用計(jì)算函數(shù)v2之后內(nèi)存地址:", id(_list))
這是代碼運(yùn)行效果:

我們是可以修改list的元素的。
list 這種對(duì)象能執(zhí)行啥操作?
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學(xué)委
# @XueWeiTag: CodingDemo
# @File : list_demo2.py
# @Project : hello
list = [3, 3, 3]
# new_list = list - list #TypeError: unsupported operand type(s) for -: 'listle' and 'listle'
new_list = list + list
print(new_list)
# 學(xué)委還是很喜歡三連的,666
new_list = list * 3
print("三連開(kāi)光過(guò)的list:", new_list)
# new_list = list / 3 # 不支持下次一定??!
print("'666' in new_listle ? ", '666' in new_list)
下面是運(yùn)行效果:

可以看到,我們之前在tuple中的操作list也一一支持了。
tuple 轉(zhuǎn)list
直接上代碼:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2021/10/31 10:36 下午
# @Author : LeiXueWei
# @CSDN/Juejin/Wechat: 雷學(xué)委
# @XueWeiTag: CodingDemo
# @File : list_demo2.py
# @Project : hello
mylist = [3, 3, 3]
new_list = [x * 2 for x in mylist]
print("加倍過(guò)的list:", new_list)
# 從這里開(kāi)始展示tuple 轉(zhuǎn)list
tup = (6, 6, 6)
new_list = list(tup)
print("把list轉(zhuǎn)list: ", new_list)
if 6 in new_list:
print("new_list has 6 !")
說(shuō)這么多,好像漏了點(diǎn)啥?遍歷列表還沒(méi)有展示呢。
這個(gè)非常簡(jiǎn)單,隨手就來(lái)
list = [ 1, 2, 3]
for x in list:
do_on_value(x)
就這樣,其實(shí)上面的展示代碼涵蓋了,但是沒(méi)有特別說(shuō)出來(lái)。
就是這一句 ‘new_list = [x * 2 for x in mylist]' , 直接遍歷列表并把每個(gè)函數(shù)的值都x2生成的元素構(gòu)成新列表。
總結(jié)
本篇文章就到這里了,希望能夠給你帶來(lái)幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!
相關(guān)文章
openCV入門(mén)學(xué)習(xí)基礎(chǔ)教程第一篇
OpenCV是計(jì)算機(jī)視覺(jué)領(lǐng)域一個(gè)圖像和視頻處理庫(kù),用于各種圖像和視頻分析,如面部識(shí)別和檢測(cè),車(chē)牌閱讀,照片編輯,高級(jí)機(jī)器人視覺(jué),光學(xué)字符識(shí)別等等,下面這篇文章主要給大家介紹了關(guān)于openCV入門(mén)學(xué)習(xí)基礎(chǔ)教程第一篇的相關(guān)資料,需要的朋友可以參考下2022-11-11
Python編寫(xiě)運(yùn)維進(jìn)程文件目錄操作實(shí)用腳本示例
這篇文章主要為大家介紹了Python編寫(xiě)實(shí)用運(yùn)維進(jìn)程文件目錄的操作腳本示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05
對(duì)python中的float除法和整除法的實(shí)例詳解
今天小編就為大家分享一篇對(duì)python中的float除法和整除法的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-07-07
Python?文件與文件對(duì)象及文件打開(kāi)關(guān)閉
這篇文章主要介紹了Python?中的文件與文件對(duì)象,Python中常有的數(shù)據(jù)文件類(lèi)型有文本文件、二進(jìn)制文件和CSV文件,文本文件是ASCII編碼,漢子存儲(chǔ)的是機(jī)內(nèi)碼,更多詳細(xì)內(nèi)容,需要的小伙伴可以參考一下2022-03-03
Python數(shù)據(jù)可視化編程通過(guò)Matplotlib創(chuàng)建散點(diǎn)圖代碼示例
這篇文章主要介紹了Python數(shù)據(jù)可視化編程通過(guò)Matplotlib創(chuàng)建散點(diǎn)圖實(shí)例,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
OpenCV實(shí)現(xiàn)去除背景識(shí)別的方法總結(jié)
這篇文章主要為大家詳細(xì)介紹了如何利用OpenCV實(shí)現(xiàn)去除背景識(shí)別的功能,文中為大家總結(jié)了一些方法,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下2022-10-10

