Python进阶之利用+和*进行列表拼接-每日快报
目录
引言对序列使用+和*由列表组成的列表嵌套列表创建的陷阱总结引言
python作为一款深受大家喜爱的语言,一直都在时代的风口浪尖吸引了很多的人学习。在我们学习python的过程中,有一个非常常见的语法,那就是利用+和*进行序列的拼接以及其他操作。但是孰不住这个操作存在一个陷阱,今天就带大家从使用+和*进行拼接出发认识一个大家非常容易犯的代码错误。话不多说我们开始吧。
(资料图)
对序列使用+和*
在编写python的过程中,我们默认python的序列是支持+和*的操作的。例如在对序列相加的过程中,+号两边的序列需要是相同类型的序列,python会为我们创建一个相同类型的序列作为拼接的结果。请看下面这个例子:
string_01 = "abc" string_02 = "def" print(string_01 * 5) print(string_01 + string_02) >>>abcabcabcabcabc >>>abcdef
另外,我们还可以在列表中使用上述代码进行拼接与合并,如下所示:
list_01 = [i for i in range(3)] list_02 = [i for i in range(4,7)] print(list_01 * 3) print(list_01 + list_02) >>>[0, 1, 2, 0, 1, 2, 0, 1, 2] >>>[0, 1, 2, 4, 5, 6]
在这个过程当中,python不会修改原有的序列而是会新开辟一个空间存储合并后或者拼接后的序列。
由列表组成的列表
在有些情况下,可能需要我们建立一个嵌套着几个列表的列表,例如需要我们建立一个用于存储员工信息的嵌套列表。请看下面的代码:
worker_information = [["Nan"] * 3 for i in range(3)] print(worker_information) >>> [["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"]]
注意:上述代码中利用了生成器表达式来完成,还不是很了解的小伙伴可以点击下方文章了解一下。 【python进阶】你还在使用for循环新建数组?生成器表达式帮你一行解决
当我们想要修改其中的一项时,只需要进行常规的赋值就可以了,如下所示:
worker_information[0][0] = "王刚" worker_information[0][1] = "20岁" print(worker_information) >>>[["王刚", "20岁", "Nan"], ["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"]]
嵌套列表创建的陷阱
我们通过上述代码中的+和的应用使得我们快速创建了嵌套列表。但是,要注意当使用诸如an的表达式时,a不能是同一个引用。下面我们来看一个具体的例子来更好的说明这种情况,请看下面这段代码:
worker_information_bug = [["Nan"] * 3] * 3 print(worker_information_bug) worker_information_bug[0][0] = "王刚" print(worker_information_bug) >>>[["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"]] >>>[["王刚", "Nan", "Nan"], ["王刚", "Nan", "Nan"], ["王刚", "Nan", "Nan"]]
程序出现了意想不到的结果,当我们改变嵌套列表中的一个元素时,所有列表的元素都发生了改变。下面这段代码也是典型的错误,如下:
row = ["Nan"] * 3 worker_information_bug_02 = [] for i in range(3): worker_information_bug_02.append(row) print(worker_information_bug_02) worker_information_bug_02[0][0] = "王刚" print(worker_information_bug_02) >>>[["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"]] >>>[["王刚", "Nan", "Nan"], ["王刚", "Nan", "Nan"], ["王刚", "Nan", "Nan"]]
上述两段代码的错误都是由于重复了同一个引用所导致的,在[["Nan"] * 3]
中我们建立了一个列表,但当这个结构被嵌套成[["Nan"] * 3] * 3
时,其实我们只是在一个列表中放入了三个同一个列表的引用,而不是创建了三个列表。正确的做法应该如下:
worker_information_bug_02 = [] for i in range(3): # 每次循环都建立新的列表 row = ["Nan"] * 3 worker_information_bug_02.append(row) print(worker_information_bug_02) worker_information_bug_02[0][0] = "王刚" print(worker_information_bug_02) >>>[["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"]] >>>[["王刚", "Nan", "Nan"], ["Nan", "Nan", "Nan"], ["Nan", "Nan", "Nan"]]
在上述代码中,我们在每次循环都建立了新的列表,这能够保证我们的修改正常进行。
总结
在本文中,我们介绍了对列表使用+和*进行拼接以及在利用其不当的过程中,可能会导致的问题希望大家都能够理解并注意。
到此这篇关于Python进阶之利用+和*进行列表拼接的文章就介绍到这了,更多相关Python列表拼接内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
标签:
精彩推送
新闻快讯
X 关闭
X 关闭
新闻快讯
- Python进阶之利用+和*进行列表拼接-每日快报
- 环球观点:智融5G 突破边界 通宇通讯引领行业新纪元
- 目前已经完成的集采省份,有集采到公司的长效生长激素吗?长春高新(000661.SZ):没有
- 【速看料】我省今年计划开发5000个科研助理岗位
- 湖南工学院开展“讲好励志故事,传播青春力量”暑期社会实践活动_环球资讯
- 富那奢比丘记(关于富那奢比丘记介绍)
- 在计算机应用中计算机辅助设计的英文缩写是什么_在计算机应用中计算机辅助设计是指 热门看点
- 融创中国:5.11亿元收购与新兴集团合作项目肇庆鼎湖府剩余45%股权
- 海上风电大跨越
- 环球速递!塞尔维亚愿举办俄乌会谈_塞尔好
- 全球今日讯!斗罗大陆之第八怪现世_斗罗大陆之八怪装学生
- 《玉骨遥》首播!任敏颜值演技被吐槽,网友:比不上《花千骨》
- 鸡西市城子河区医疗保障局_关于鸡西市城子河区医疗保障局简述 每日热讯
- 企业获取资金后又投入金融体系,中行报告解析信贷与投资增速背离原因 环球热门
- 赛维时代(301381.SZ)回拨后网上定价发行中签率0.0281%-环球热点
- 太原图书批发市场在哪里 太原市书店有哪些_实时
- 转深汕西更近了,深圳外环高速二期又有新进展
- 贝仕达克(300822)每日收评(07-03)
- 全球即时:注意防范!郑州已启动防汛四级应急响应
- 即时看!2023年陕西省普通中等专业教育分学校招生生源计划
- 第十四届“华语金曲奖”揭晓,崔健黄绮珊获最佳男女歌手奖 环球即时看
- 世界快消息!6月的腾势:D9拉满,静待N7
- 香港警方悬红100万港元通缉许智峰、罗冠聪等8人
- 普陀区公司劳务合同律师费用怎么算
- 信仰的光丨卓嘎、央宗姐妹:守好祖国的每一寸土地
- 云南勐绿高速公路大梁山隧道双线贯通
- 天天日报丨全民别墅难以实现,原因有2
- 全球简讯:松下将为马自达提供圆柱形车用锂离子电池
- 一只加一只等于一双答案_一只加一只等于一双 全球快消息
- 中国能建聚焦新能源 打造绿色发展新引擎
- 上半年基金清盘136只 权益类产品占七成
- 柬埔寨夜店起火8人死亡,包括6名中国人 警方:火灾由电线短路引发,遇难者为装修工人_当前播报
- 环球热议:小学暑假作业:有意思,没负担
- 南北高架转内环匝道三车事故:有车侧翻,一人受伤
- 【环球热闻】立冬祝福语【最新9篇】
- 厦门35项措施促进跨境贸易便利化
- 一线劳动者走进陕西历史博物馆 共享博物馆之夜_世界视讯
- 潘功胜任中国人民银行党委书记 滚动
- 【全球播资讯】2米长蛇闯进公司大厅吓跑员工 民警“搏斗”后放生处理
- 成都一草坪惊现上百条“蚊卷风” 蚊子呈螺旋状一条一条相当吓人|天天观热点
- 【时快讯】2023年6月广西桂林市象山区招聘社区工作人员考试总成绩及拟聘名单公示
- 【环球新视野】我国首个自主研发大型抽水蓄能“变速箱”亮相2023国际数字能源展
- 鼎通科技:6月30日获融资买入2869.19万元,占当日流入资金比例10.4% 全球微速讯
- 苍溪二手房(苍溪二手房最新信息在线_环球动态
- 世界新动态:二十周胎儿发育图片大全_二十周胎儿发育图
- 标致207三厢说明书(标致207三厢多久换刹车片?)
- 25分+三分绝杀!栾利程热身赛打出身价,北京傻眼,山西赚了!
- 环球快看点丨适合中午吃的家常菜,一家三口刚刚好,好吃的不得了!
- 世界观热点:团“节”度夏 节电行动进校园
- 哪里的封闭学校比较好 封闭式学校哪好|世界滚动