向函数传递列表
函数可以提高处理列表的效率
例如:
def greet_user(names):
"""向列表每位用户发出简单的问候"""
for name in names:
msg = f"Hello,{name.title()}"
print(msg)
在函数中修改列表
在函数中修改列表是永久性的,这可以高效的处理大量数据。
例如:打印列表1的数据,将打印过的数据转移到列表2
1、非函数实现
lis1 = ['windows','mac','linux']
lis2 = []
# 模拟打印过程
while lis1:
pri = lis1.pop()
print(f'数据{pri}已打印!')
lis2.append(pri)
# 显示打印好的数据
print("\n以下数据已打印:")
for lis in lis2:
print(lis.title())
print(lis1)
print(lis2)
2、函数实现
# 处理打印设计的工作
def print_models(unprinted,completed):
while unprinted:
current_design = unprinted.pop()
print(f"数据{current_design}正在打印!")
completed.append(current_design)
# 概述打印了哪些设计
def show_completed(completed):
print("\n以下数据已经打印好了:")
for n in completed:
print(n)
# 列表
unprinted = ['windows','mac','linux']
completed = []
用函数来实现功能的话,主程序更容易理解,并且这个程序更容易扩展和维护。
禁止函数修改列表
有时候,需要禁止函数修改列表,我们可以向函数传递列表的副本而非原件。
利用切片表示法[:]创建列表的副本:
function_name(list_name[:])
用列表副本调用刚刚那个函数
print_models(unprinted[:],completed)