大橙子网站建设,新征程启航

为企业提供网站建设、域名注册、服务器等服务

python修改函数列表 python列表元素

Python 中如何修改禁止函数修改列表

有的时候, 我们希望会保留列表中的数据作为备份,又不希望函数中不修改列表的值,该怎么做?python中提供了一种方法,将列表的副本传递给

专注于为中小企业提供网站建设、成都网站制作服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业晋州免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了超过千家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

函数,这样函数修改的只是列表的副本, 不会修改原列表的内容,可以按照下面这样做:

function_name(list_name[:])

切片表示法[:]创建列表副本.

如下面程序: 我们可以 给print_models 方法传递 unprinted_designs[:],这样原列表 unprinted_designs值的就不会被修改

def print_models(unprinted_designs ,completed_models):

"""

模拟打印每个设计,直到没有未打印的设计为止

打印每个设计后,都将其移到列表completed_models中

"""

while unprinted_designs:

    current_design = unprinted_designs.pop()

    #模拟根据设计制作3D打印模型的过程

    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)

Python 如何利用函数修改函数外list

"""

使用global子句。在stisfiesF函数中,声明L为一个全局变量,如此

你在该函数中修改L的值,则会体现到函数之外。这种写法违背Python

优雅的原则,不推荐使用,仅供学习.【L中的元素不能有数字,否则

报错,我也不知什么原因】

"""

def f(s):

return 'av' in s

# 在声明L为全局变量之前定义,代码更直观

L = ['av1', 'av', 'a','b','ac','love','python',('f','av','gh'),[1,2,3]]

# 此处函数不传入参数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的长度为%s'%satisfiesF())

print ('将原列表修改为元素含有"av"的新列表L:')

print(L)

"""

结果:新列表L的长度为3

将原列表修改为元素含有"av"的新列表L:

['av1', 'av', ('f', 'av', 'gh')]

"""

新手请教,python怎么定义可修改列表的函数

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)


新闻标题:python修改函数列表 python列表元素
本文链接:http://dzwzjz.com/article/hpghje.html
在线咨询
服务热线
服务热线:028-86922220
TOP