菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 3 教程
Python3 教程 Python3 简介 Python3 环境搭建 Python3 VScode Python3 基础语法 Python3 基本数据类型 Python3 数据类型转换 Python3 解释器 Python3 注释 Python3 运算符 Python3 数字(Number) Python3 字符串 Python3 列表 Python3 元组 Python3 字典 Python3 集合 Python3 条件控制 Python3 循环语句 Python3 编程第一步 Python3 推导式 Python3 迭代器与生成器 Python3 with Python3 函数 Python3 lambda Python3 装饰器 Python3 数据结构 Python3 模块 Python __name__ Python3 输入和输出 Python3 File Python3 OS Python3 错误和异常 Python3 面向对象 Python3 命名空间/作用域 Python 虚拟环境的创建 Python 类型注解 Python3 标准库概览 Python3 实例 Python 测验

Python3 高级教程

Python3 正则表达式 Python3 CGI编程 Python3 MySQL(mysql-connector) Python3 MySQL(PyMySQL) Python3 网络编程 Python3 SMTP发送邮件 Python3 多线程 Python3 XML 解析 Python3 JSON Python3 日期和时间 Python3 内置函数 Python3 MongoDB Python3 urllib Python uWSGI 安装配置 Python3 pip Python3 operator Python math Python requests Python random Python OpenAI Python 有用的资源 Python AI 绘画 Python statistics Python hashlib Python 量化 Python pyecharts Python selenium 库 Python 爬虫 Python Scrapy 库 Python Markdown Python sys 模块 Python Pickle 模块 Python subprocess 模块 Python queue 模块 Python StringIO 模块 Python logging 模块 Python datetime 模块 Python re 模块 Python csv 模块 Python threading 模块 Python asyncio 模块 Python PyQt Python for 循环 Python while 循环
(追記) (追記ここまで)

Python3 List copy()方法

Python3 列表 Python3 列表


描述

copy() 函数用于复制列表,类似于 a[:]

语法

copy()方法语法:

list.copy()

参数

  • 无。

返回值

返回复制后的新列表。

实例

以下实例展示了 copy()函数的使用方法:

实例

#!/usr/bin/python3

list1 = ['Google', 'Runoob', 'Taobao', 'Baidu']
list2 = list1.copy()
print ("list2 列表: ", list2)

以上实例输出结果如下:

list2 列表: ['Google', 'Runoob', 'Taobao', 'Baidu']

Python3 列表 Python3 列表

AI 思考中...

3 篇笔记 写笔记

  1. #0

    cowpea

    115***[email protected]

    63

    copy()和直接=赋值的区别:

    a=[0,1,2,3,4,5]
    b=a
    c=a.copy()
    del a[1] 
    '''
     各变量值为:
     a=[0, 2, 3, 4, 5]
     b=[0, 2, 3, 4, 5]
     c=[0, 1, 2, 3, 4, 5]
    '''
    b.remove(4)
    '''
     各变量值为:
     a=[0, 2, 3, 5]
     b=[0, 2, 3, 5]
     c=[0, 1, 2, 3, 4, 5]
    '''
    c.append(9)
    '''
     各变量值为:
     a=[0, 2, 3, 5]
     b=[0, 2, 3, 5]
     c=[0, 1, 2, 3, 4, 5, 9]
    '''

    可以看出,使用=直接赋值,是引用赋值,更改一个,另一个同样会变, 例子中的a,b改变两次都影响到了对方

    copy() 则顾名思义,复制一个副本,原值和新复制的变量互不影响 「a,c」

    cowpea

    115***[email protected]

    9年前 (2017年07月27日)
  2. #0

    龙龙

    990***[email protected]

    36
    arr = [{'name': 'wcl', 'age': 23}, {'name': 'wjy', 'age': 14}]
    arr2 = arr.copy()
    del arr[1]
    arr[0]['age'] = 18
    print('arr', arr)
    print('arr2', arr2)

    输出结果为:

    arr [{'name': 'wcl', 'age': 18}]
    arr2 [{'name': 'wcl', 'age': 18}, {'name': 'wjy', 'age': 14}]

    可以看出,copy() 只是是浅度复制,修改列表不会互相影响,但是修改列表里面的对象会影响到对方列表里面对象。

    龙龙

    990***[email protected]

    8年前 (2018年12月03日)
  3. #0

    叫老王吧

    268***[email protected]

    73

    浅拷贝内存原理:

    a=[0,1,2,3,4,5]
    b=a
    """
     使用=赋值后,相当于[0,1,2,3,4,5]对象同时被变量a和b同是引用和指向,此后,如果通过变量a或者变量b途径取修改这个列表对象,因为a和b指向的是同一个列表对象,列表对象本身改变后,所有通过引用它的变量输出来的数据都是改变的.
    类似于,大家公用一个寝室,其中一个人把寝室的面貌改变了,那么所有人再去描述现在的寝室,它都是改变过后的样子.
     通过浅拷贝方法相当于其中一个人根据原来的寝室的面貌重新盖了一个寝室,所以a和b的改变与c的改变互不影响. 
    """
    c=a.copy()
    del a[1] 
    '''
     各变量值为:
     a=[0, 2, 3, 4, 5]
     b=[0, 2, 3, 4, 5]
     c=[0, 1, 2, 3, 4, 5]
    '''
    b.remove(4)
    '''
     各变量值为:
     a=[0, 2, 3, 5]
     b=[0, 2, 3, 5]
     c=[0, 1, 2, 3, 4, 5]
    '''
    c.append(9)
    '''
     各变量值为:
     a=[0, 2, 3, 5]
     b=[0, 2, 3, 5]
     c=[0, 1, 2, 3, 4, 5, 9]
    '''

    当原对象存在多层嵌套的情况下,浅拷贝copy()只拷贝了最外层的数据结构,最外层所包含的数据变化时,是不会相互影响的,但是当原数据对象内部嵌套数据中的数据发生变化后,相应的浅拷贝后的对象也会发生变化.类似于一个公司,原来有一个宿舍,通过浅拷贝,重新造了一个相同建筑架构的宿舍.里面有物理墙体,电视,电脑,床位等,电视里播放着统一的画面.当公司改变了电视里播放的画面时,所有的宿舍都会发生改变.其中物理墙体,硬件电视等相当于最外层的对象结构,而电视里的画面就是内层嵌套的数据了。

    arr = [{'name': 'wcl', 'age': 23}, {'name': 'wjy', 'age': 14}]
    arr2 = arr.copy()
    del arr[1]
    arr[0]['age'] = 18 #或者arr2[0]['age'] = 18
    print('arr', arr)
    print('arr2', arr2)

    叫老王吧

    268***[email protected]

    7年前 (2019年10月11日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /