python:为了禁止函数修改列表,向函数传递列表的副本

  • 有时候,需要禁止函数修改列表,此时,就可以向函数传递列表的副本而非原件。这样,函数所做的任何修改都只影响副本,而原件丝毫不受影响。要将列表的副本传递给函数,可以象下面这样传递列表的切片:
function_name(list_name[:])
  • 虽然向函数传递列表的副本可以保留原始列表的内容,但要有充分的理由这样做。否则,还是应该将原始列表传递给函数,这样可以避免花时间和内存创建副本,从而提升效率。

示例:

def transfer(from_names, final_names):
    """将列表from_names中的元素转移到final_names中"""
    while from_names:
        # 从列表from_names的末尾弹出一个元素
        name = from_names.pop()
        # 将元素添加到列表final_names的末尾
        final_names.append(name)

# 创建一个列表
original_names = ["Thb", "Ding", "Li"]
# 创建一个空列表
final_names = []

# 将original_names列表副本中的元素转移到final_names中
transfer(original_names[:], final_names)
print("目标列表的内容: ")
print(final_names)
print("原始列表的内容:")
print(original_names)

运行输出:
在这里插入图片描述

从上面输出可以看出,原始列表中的内容没有改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值