Python 列表 extend()函数使用详解

「作者主页」:士别三日wyx
「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者
「推荐专栏」:小白零基础《Python入门到精通》

extend函数使用详解

  • 1、可以接收的参数
    • 1.1、添加字符串
    • 1.2、添加元组
    • 1.3、添加字典
  • 2、原理解析
  • 3、extend() 和 append()、+ 的区别?
  • 4、特殊的添加方式

extend() 可以在列表末尾「添加」另一个「序列」中的值。

语法

list.extend( iterable )

参数

  • iterable :需要添加的元素列表

返回值

  • 没有返回值,只是修改原来的列表

实例:向列表中添加另一个列表

list1 = [1, 2, 3]
list2 = [4, 5, 6]list1.extend(list2)
print(list1)

输出:

[1, 2, 3, 4, 5, 6]

1、可以接收的参数

extend() 接收的参数类型是「可迭代对象」,任何具有_iter_()_getitem_()方法的对象都是可迭代对象,Python内了很多可迭代对象,常见的有 list,str,tuple,dict。

1.1、添加字符串

extend() 可以添加「字符串」类型的数据,字符串的每一个「字符」,都被当做一个新「元素」

list1 = [1, 2, 3]
str1 = 'abc'list1.extend(str1)
print(list1)

输出:

[1, 2, 3, 'a', 'b', 'c']

1.2、添加元组

extend() 可以添加「元组」类型的数据,和添加列表类似,每个「元素」都被当做一个新元素。

list1 = [1, 2, 3]
tuple1 = (4, 5, 6)list1.extend(tuple1)
print(list1)

输出:

[1, 2, 3, 4, 5, 6]

1.3、添加字典

extend() 可以添加「字典」类型的数据,只添加键,每一个「键」都被当做一个新「元素」

list1 = [1, 2, 3]
dict1 = {'key1': 1, 'key2': 2}list1.extend(dict1)
print(list1)

输出:

[1, 2, 3, 'key1', 'key2']

2、原理解析

extend() 只是将元素追加在列表「末尾」,本质上是 “修改” 而不是 “增加”,不会创建新的列表。

在这里插入图片描述

我们打印添加前、后的内存地址可以发现,「内存地址」没有变,还是原来的那个列表。

list1 = [1, 2, 3]
list2 = [4, 5, 6]print(id(list1))
list1.extend(list2)
print(id(list1))

输出:

1930566508928
1930566508928

extend() 在添加其他类型时,会先转换成 list,再添加元素,类似下面这样:

list1 = [1, 2, 3]
str1 = 'abc'list2 = list(str1)
print(list2)
list1.extend(list2)
print(list1)

输出:

['a', 'b', 'c']
[1, 2, 3, 'a', 'b', 'c']

3、extend() 和 append()、+ 的区别?

以添加列表为例

extend() 添加列表,是将列表中的「每个元素」都当做一个新元素,添加到原来的列表中

list1 = [1, 2, 3]
list2 = [4, 5, 6]list1.extend(list2)
print(list1)

输出:

[1, 2, 3, 4, 5, 6]

append() 添加列表,是将「>整个列表」当做一个新元素,添加到原来的列表中

list1 = [1, 2, 3]
list2 = [4, 5, 6]list1.append(list2)
print(list1)

输出:

[1, 2, 3, [4, 5, 6]]

+「拼接」元素,并创建一个新的列表存放,内存地址会改变

list1 = [1, 2, 3]
list2 = [4, 5, 6]print(id(list1))
print(id(list2))
print(id(list1 + list2))

输出:

2680876376448
2680876376576
2680878544128

+= 的效果跟 extend() 一样,每个元素都被当做一个新元素,并且不会改变内存

list1 = [1, 2, 3]
list2 = [4, 5, 6]
print(id(list1))
list1 += list2
print(list1)
print(id(list1))

输出:

2150265921856
[1, 2, 3, 4, 5, 6]
2150265921856

4、特殊的添加方式

配合算术「运算符」添加列表

list1 = [1, 2, 3]
list2 = [4, 5, 6]list1.extend(list2 * 2)
print(list1)
list1.extend(list1 + list2)
print(list1)

输出:

[1, 2, 3, 4, 5, 6, 4, 5, 6]
[1, 2, 3, 4, 5, 6, 4, 5, 6, 1, 2, 3, 4, 5, 6, 4, 5, 6, 4, 5, 6]

「索引」取值添加列表

list1 = [1, 2, 3]
list2 = [4, 5, 6]list1.extend(list2[1:2])
print(list1)

输出:

[1, 2, 3, 5]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/423.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【动手学深度学习】pytorch-参数管理

pytorch-参数管理 概述 我们的目标是找到使损失函数最小化的模型参数值。 经过训练后,我们将需要使用这些参数来做出未来的预测。 此外,有时我们希望提取参数,以便在其他环境中复用它们, 将模型保存下来,以便它可以在…

【USRP X410】LabVIEW参考架构软件,用于使用Ettus USRP X410对无线系统进行原型验证

LabVIEW参考架构软件,用于使用Ettus USRP X410对无线系统进行原型验证 设备 1 MHz to 7.2 GHz,400 MHz带宽,GPS驯服OCXO,USRP软件无线电设备 - Ettus USRP X410集成硬件和软件,可帮助您制作高性能无线系统的原型&…

500万PV的网站需要多少台服务器?

1. 衡量业务量的指标 衡量业务量的指标项有很多,比如,常见Web类应用中的PV、UV、IP。而比较贴近业务的指标项就是大家通常所说的业务用户数。但这个用户数比较笼统,其实和真实访问量有比较大的差距,所以为了更贴近实际业务量及压力…

Django_使用redis缓存数据

目录 一、配置redis 二、缓存Django的默认session 三、使用django的缓存机制缓存数据 四、自定义缓存数据 源码等资料获取方法 一、配置redis 在settings中添加配置参数 # Django的缓存配置 CACHES {"default": {"BACKEND": "django_redis.ca…

【网站开发】jq (jquery)实现瀑布流布局

要实现网站瀑布流效果&#xff0c;可以使用HTML、CSS和jquery来完成。下面是一种常见的实现方式&#xff1a; 注意要引入jQuery库。 代码如下&#xff1a; <!DOCTYPE html> <html><head><meta charset"utf-8"><title></title>…

【Unity面试篇】Unity 面试题总结甄选 |Unity进阶篇 | ❤️持续更新❤️

前言 关于Unity面试题相关的所有知识点&#xff1a;&#x1f431;‍&#x1f3cd;2023年Unity面试题大全&#xff0c;共十万字面试题总结【收藏一篇足够面试&#xff0c;持续更新】为了方便大家可以重点复习某个模块&#xff0c;所以将各方面的知识点进行了拆分并更新整理了新…

2023上半年工作总结

目录 一、目标达成情况总结&#xff1a; 二、工作/学习成果总结&#xff1a; 三、下半年规划总结&#xff1a; 一、目标达成情况总结&#xff1a; 其实我并没有给自己定多少目标&#xff0c;特别上长期的目标很少制定&#xff0c;总体来说2023年上班过的很平淡&#xff0c;波…

【Spring Boot】Spring Boot日志详情:基于lombok的日志输出

文章目录 1. 何为日志文件&#xff1f;2. 日志文件的作用3. 日志文件的基本使用3.1 Spring Boot中的日志3.2 自定义日志打印 4 日志级别4.1 日志级别的作用4.2 日志级别的分类4.3 日志级别的设置 5 日志持久化6 基于lombok的日志输出6.1 lombok 简单输出日志案例6.2 浅谈 lombo…

基于单片机空气质量检测二氧化碳 一氧化碳温湿度PM2.5检测系统的设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;对空气空气中有毒有害气体进行监测&#xff1b;使用LCD1602液晶显示&#xff0c;采集到的PM2.5值通过单片机串口传输&#xff1b;通过传感器对室内PM2.5粉尘进行检查&#xff1b;通过按键设置的上限值&#xff1b;当检测到有毒气体…

SpringBoot2+Vue2实战(十八)修改密码

一、修改密码&#xff1a; Header.vue <el-dropdown-item style"font-size: 14px; padding: 5px 0"><router-link to"/password" style"text-decoration: none">修改密码</router-link></el-dropdown-item> router/i…

【网络】socket——预备知识 | 套接字 | UDP网络通信

&#x1f431;作者&#xff1a;一只大喵咪1201 &#x1f431;专栏&#xff1a;《网络》 &#x1f525;格言&#xff1a;你只管努力&#xff0c;剩下的交给时间&#xff01; 在前面本喵对网络的整体轮廓做了一个大概的介绍&#xff0c;比如分层&#xff0c;协议等等内容&#x…

Unity 之 超级详细的隐私问题解决方案

Unity 之 助力游戏增长 -- 解决隐私问题 一&#xff0c;平台测试隐私问题二&#xff0c;解决方式一2.1 勾选自定义Mainifest2.2 修改自定义Mainifest2.3 隐私协议弹窗逻辑 三&#xff0c;解决方式二3.1 导出安卓工程3.2 创建上层Activity3.3 配置AndroidManifest 四&#xff0…

第一百零六天学习记录:数据结构与算法基础:单链表(王卓教学视频)

线性表的链式表示和实现 结点在存储器中的位置是任意的&#xff0c;即逻辑上相邻的数据元素在物理上不一定相邻 线性表的链式表示又称为非顺序映像或链式映像。 用一组物理位置任意的存储单元来存放线性表的数据元素。 这组存储单元既可以是连续的&#xff0c;也可以是不连续的…

论文笔记--Goat: Fine-tuned LLaMA Outperforms GPT-4 on Arithmetic Tasks

论文笔记--Goat: Fine-tuned LLaMA Outperforms GPT-4 on Arithmetic Tasks 1. 文章简介2. 文章概括3 文章重点技术3.1 LLM的选择3.2 算数任务的可学习性(learnability)3.3 大模型的加减乘除 4. 数值实验结果5. 文章亮点6. 原文传送门7. References 1. 文章简介 标题&#xff…

java中使用HttpRequest发送请求调用自己的接口

(539条消息) java中使用HttpRequest发送请求_java httprequest_thankful_chn的博客-CSDN博客 <dependency><groupId>com.github.kevinsawicki</groupId><artifactId>http-request</artifactId><version>5.6</version></dependenc…

网络的构成要素【图解TCP/IP(笔记七)】

文章目录 网络的构成要素通信媒介与数据链路网卡中继器网桥/2层交换机路由器/3层交换机4&#xff5e;7层交换机网关各种设备及其对应网络分层概览 网络的构成要素 通信媒介与数据链路 计算机之间通过电缆相互连接。电缆可以分为很多种&#xff0c;包括双绞线电缆、光纤电缆、同…

Java InetAddress类

【InetAddress类】 【相关方法】 【使用方法实例】 【代码结果】

创新涌动于先,PingCAP 用户峰会 2023 成功举办

2023 年 7 月 13 日&#xff0c;企业级开源分布式数据库厂商 PingCAP 在京成功举办 PingCAP 用户峰会 2023。本届峰会以“创新涌动于先”为主题&#xff0c;PingCAP 全面解析了 AI 时代 TiDB 的演进方向&#xff0c;宣布 TiDB Serverless 正式商用。会上&#xff0c;PingCAP 携…

​python接口自动化(二十八)--html测试 报告——下(详解) ​

简介 五一小长假已经结束了&#xff0c;想必大家都吃饱喝足玩好了&#xff0c;那就继续学习吧。一天不学习&#xff0c;自己知道&#xff1b;两天不学习&#xff0c;对手知道&#xff1b;三天不学习&#xff0c;大家知道&#xff1b;一周不学习&#xff0c;智商输给猪。好了开个…

静态路由介绍

目录 静态路由配置方法&#xff08;基本配置&#xff09;&#xff1a; 静态路由的拓展配置 负载均衡 1.环回接口——测试 2.手工汇总——子网汇总 3.路由黑洞&#xff08;黑洞路由) 4.缺省路由 5.空接口——NULL 0 6.浮动静态路由 静态路由配置方法&#xff08;基本配置&#x…