有的時(shí)候, 我們希望會(huì)保留列表中的數(shù)據(jù)作為備份,又不希望函數(shù)中不修改列表的值,該怎么做?python中提供了一種方法,將列表的副本傳遞給
堅(jiān)守“ 做人真誠(chéng) · 做事靠譜 · 口碑至上 · 高效敬業(yè) ”的價(jià)值觀(guān),專(zhuān)業(yè)網(wǎng)站建設(shè)服務(wù)10余年為成都混凝土攪拌站小微創(chuàng)業(yè)公司專(zhuān)業(yè)提供成都定制網(wǎng)頁(yè)設(shè)計(jì)營(yíng)銷(xiāo)網(wǎng)站建設(shè)商城網(wǎng)站建設(shè)手機(jī)網(wǎng)站建設(shè)小程序網(wǎng)站建設(shè)網(wǎng)站改版,從內(nèi)容策劃、視覺(jué)設(shè)計(jì)、底層架構(gòu)、網(wǎng)頁(yè)布局、功能開(kāi)發(fā)迭代于一體的高端網(wǎng)站建設(shè)服務(wù)。
函數(shù),這樣函數(shù)修改的只是列表的副本, 不會(huì)修改原列表的內(nèi)容,可以按照下面這樣做:
function_name(list_name[:])
切片表示法[:]創(chuàng)建列表副本.
如下面程序: 我們可以 給print_models 方法傳遞 unprinted_designs[:],這樣原列表?unprinted_designs值的就不會(huì)被修改
def print_models(unprinted_designs ,completed_models):
"""
模擬打印每個(gè)設(shè)計(jì),直到?jīng)]有未打印的設(shè)計(jì)為止
打印每個(gè)設(shè)計(jì)后,都將其移到列表completed_models中
"""
while unprinted_designs:
? ? current_design = unprinted_designs.pop()
? ? #模擬根據(jù)設(shè)計(jì)制作3D打印模型的過(guò)程
? ? print("Printing model:"+current_design)
? ? completed_models.append(current_design)
def show_completed_models(completed_models):
"""顯示打印的所有模型"""
print("\n The following mdels have been printed:")
for completed_model in completed_models:
? ? print(completed_model)
unprinted_designs =['iphone case','robot pendant','dodecahedron']
completed_models = []
print_models(unprinted_designs , completed_models)
show_completed_models(completed_models)
t_list=['m1','m2','m3']def show_maagicians(L): for i in t_list: print(i) return show_maagicians(t_list) def make_great(L): for i in range(len(L)): L[i]='the Great '+L[i] return make_great(t_list)show_maagicians(t_list)
"""
使用global子句。在stisfiesF函數(shù)中,聲明L為一個(gè)全局變量,如此
你在該函數(shù)中修改L的值,則會(huì)體現(xiàn)到函數(shù)之外。這種寫(xiě)法違背Python
優(yōu)雅的原則,不推薦使用,僅供學(xué)習(xí).【L中的元素不能有數(shù)字,否則
報(bào)錯(cuò),我也不知什么原因】
"""
def?f(s):
return?'av'?in?s
#?在聲明L為全局變量之前定義,代碼更直觀(guān)
L?=?['av1',?'av',?'a','b','ac','love','python',('f','av','gh'),[1,2,3]]
#?此處函數(shù)不傳入?yún)?shù)L
def?satisfiesF():
#?聲明L為全局變量
global?L
x?=?[]
for?i?in?L:
if?f(i):?????
x.append(i)
else:
pass
L?=?x
return?len(L)
print?('新列表L的長(zhǎng)度為%s'%satisfiesF())
print?('將原列表修改為元素含有"av"的新列表L:')
print(L)
"""
結(jié)果:新列表L的長(zhǎng)度為3
將原列表修改為元素含有"av"的新列表L:
['av1',?'av',?('f',?'av',?'gh')]
"""
l?=?range(5)
def?func(m):
...?????m[3]?=?999
...?????
print?l
[0,?1,?2,?3,?4]
func(l)
print?l
[0,?1,?2,?999,?4]
直接修改列表就可以了
名稱(chēng)欄目:python列表函數(shù)更改 修改列表python
本文來(lái)源:http://aaarwkj.com/article20/docpgco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、企業(yè)建站、網(wǎng)站內(nèi)鏈、用戶(hù)體驗(yàn)、小程序開(kāi)發(fā)、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
移動(dòng)網(wǎng)站建設(shè)知識(shí)