千家信息网

python开发中两个列表之间的传值过程介绍

发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本篇内容主要讲解"python开发中两个列表之间的传值过程介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python开发中两个列表之间的传值过程介绍"
千家信息网最后更新 2026年11月03日python开发中两个列表之间的传值过程介绍

本篇内容主要讲解"python开发中两个列表之间的传值过程介绍",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"python开发中两个列表之间的传值过程介绍"吧!

首先对于一个单层的列表

赋值如下,可以看见,如果直接使用 = 的话。其中一个变换便会引起另外一个变换,这时因为这两个list被python解释的时候使用的相同的地址,如下面输出的 id()中的内容,所以此时如果想让一个列表接收到另外一个列表的值,并且在接收到值后不会因为其中任意一个值的改变而改变,这时候就需要使用copy方法,这里可以解释成,当使用了copy方法后,python单独创建了找个一个内存区的地址放了新的那个值。

a = [ 1,2,3]b = aa[0] = a[0] +1print(a)print(b)print(id(a[0]))print(id(b[0]))print("*"*20)a1 = [5,6,7]b1 = a1.copy()a1[0] = a1[0] + 1print(a1)print(b1)print(id(a1[0]))print(id(b1[0]))

输出

[2, 2, 3][2, 2, 3]140729246982592140729246982592********************[6, 6, 7][5, 6, 7]140729246982720140729246982688

对于多层列表

这也是我今天被坑的地方,注意到了第一层,但却没有注意到第二层,如下可以看见,虽然我们使用了copy方法,但是内层[]则没有

a = [[1,2,4],[3,5,8],[],[]]b = a.copy()print("打印数组地址:")print(id(a))print(id(b))print("*"*40)print("打印内层元素地址:")print(id(a[0]))print(id(b[0]))print(id(a[0][0]))print(id(b[0][0]))print("*"*40)a.append(4)a[1][0] = a[1][0] + 1print(a)print(b)print(id(a[4]))

输出

打印数组地址:19388789795281938879043976****************************************打印内层元素地址:19388777312081938877731208140729246982560140729246982560****************************************[[1, 2, 4], [4, 5, 8], [], [], 4][[1, 2, 4], [4, 5, 8], [], []]140729246982656

所以赋值操作应该为:

import copya = [[1,2,4],[3,5,8],[],[]]# b = a.copy()b =  copy.deepcopy(a)

即使用 copy.deepcopy 进行赋值操作,这时候当对a的内层元素进行操作之后,b不会跟着改变,
不过这里需要注意的是(不得不说这个设计节省内存真的很精妙),如果不更改a和b内部元素的值的话,那么a和b内部元素的值他们的地址还是相同的,只有在一方更改了自身地址内的值的时候,地址才会更改。

import copya = [[1,2,4],[3,5,8],[],[]]# b = a.copy()b =  copy.deepcopy(a)print("打印数组地址:")print(id(a))print(id(b))print("*"*40)print("打印内层元素地址:")print(id(a[0]))print(id(b[0]))print("0"*50)print(id(a[0][0]))print(id(b[0][0]))print("10"*50)print("\n")print(a[1][0])print(b[1][0])print(id(a[1][0]))print(id(b[1][0]))print("10"*50)print("\n")# print("*"*40)# a.append(4)a[1][0] = a[1][0] + 1## print(a)# print(b)# print(id(a[4]))# print("\n")print("10"*50)print(a[1][0])print(b[1][0])print(id(a[1][0]))print(id(b[1][0]))print("10"*50)print("\n")b[1][0] = b[1][0] + 2print(id(b[1][0]))

输出

打印数组地址:16962612902481696261352200****************************************打印内层元素地址:169625769204016943687072720000000000000000000000000000000000000000000000000014072913334313614072913334313610101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010103314072913334320014072913334320010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010431407291333432321407291333432001010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010101010140729133343264

到此,相信大家对"python开发中两个列表之间的传值过程介绍"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

地址 元素 内层 两个 数组 方法 输出 之间 过程 开发 内容 相同 内存 时候 变换 学习 解释 实用 更深 精妙 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 天津市摩尔互联网科技 圆梦互联网科技 重庆互联网络科技 上海挚品互联网科技 奇酷互联网科技 科技创新互联网企业 海南科技产业互联网平台 创业天下互联网科技有限公司 移动互联网年度科技创新 银川新华互联网科技学校联系电话 东莞新华互联网科技学校 山东有哪些互联网科技公司 锡山区互联网智能科技产品供应 全球科技与互联网公司市值变化 版纳互联网科技选哪家 互联网金融运营模式中的金融科技 互联网领先科技活动 青岛易易互联网科技 北京瑞云互联网科技有限公司 互联网 科技节活动 微视频大赛 互联网科技革命 银川新华互联网科技职业技术培训学校图片 彤创互联网科技有限公司 互联网保险科技创业 佛山市翊博互联网络科技有限公司 互联网科技实习生岗位 云鲸互联网络科技有限公司 版纳互联网科技选哪家 亚光科技低轨卫星互联网 科技发展第三阶段互联网时代
0