zoukankan      html  css  js  c++  java
  • python中禁止函数修改列表

    1、原始函数

    def a(x,y):
        while x:
            temp = x.pop()
            print(f"printing model:{temp}")
            y.append(temp)
    
    def b(x):
        print("\nThe following model had been printed!")
        for i in x:
            print(i)
    
    list1 = ["aaa","bbb","ccc"]
    list2 = []
    
    a(list1,list2)
    b(list2)
    printing model:ccc
    printing model:bbb
    printing model:aaa
    
    The following model had been printed!
    ccc
    bbb
    aaa
    >>> list1        ## 原始列表变为空列表
    []
    >>> list2
    ['ccc', 'bbb', 'aaa']

    2、使用函数副本(列表分片复制)

    def a(x,y):
        while x:
            temp = x.pop()
            print(f"printing model:{temp}")
            y.append(temp)
    
    def b(x):
        print("\nThe following model had been printed!")
        for i in x:
            print(i)
    
    list1 = ["aaa","bbb","ccc"]
    list2 = []
    
    a(list1[:],list2)
    b(list2)
    printing model:ccc
    printing model:bbb
    printing model:aaa
    
    The following model had been printed!
    ccc
    bbb
    aaa
    >>> list1      ## 原始列表没有改变
    ['aaa', 'bbb', 'ccc']
    >>> list2
    ['ccc', 'bbb', 'aaa']
  • 相关阅读:
    8_python连接数据库
    7_数据类型
    Memcached delete 命令
    Memcached gets 命令
    Memcached get 命令
    Memcached CAS 命令
    Memcached prepend 命令
    Memcached append 命令
    Memcached replace 命令
    Memcached add 命令
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/14513164.html
Copyright © 2011-2022 走看看