技术标签: python 后端 网络安全 Python 开发语言
「作者主页」:士别三日wyx
append() 函数可以向列表末尾添加元素
语法
list.append( element )
参数
实例:向列表末尾添加一个元素
name_list = ['zhangsan', 'lisi', 'wangwu']
name_list.append('zhaoliu')
print(name_list)
输出:
['zhangsan', 'lisi', 'wangwu', 'zhaoliu']
需要注意的是, append() 函数添加的元素在列表的「末尾」而不是任意位置
append() 函数可以向列表末尾添加「任意类型」的元素
实例:添加普通类型(数值、字符串)元素
list1 = ['zhangsan', 'lisi', 'wangwu']
list1.append(1) # 添加整形
print(list1)
list1.append('str') # 添加字符型
print(list1)
输出:
['zhangsan', 'lisi', 'wangwu', 1]
['zhangsan', 'lisi', 'wangwu', 1, 'str']
实例:添加集合类型(列表,元祖)元素
list1 = ['zhangsan']
list1.append([1,2,3]) # 添加列表
print(list1)
list1.append((4,5,6)) # 添加元祖
print(list1)
输出:
['zhangsan', [1, 2, 3]]
['zhangsan', [1, 2, 3], (4, 5, 6)]
使用 append() 函数添加列表时,是添加列表的「引用地址」而不是添加列表内容,当被添加的列表发生变化时,添加后的列表也会同步发生变化。
list1 = ['zhangsan']
a = [1,2,3]
list1.append(a) # 列表list1添加列表a
print(list1)
a.append(4) # 列表a发生变化
list1.append(a)
print(list1) # 列表list1也会同步变化
输出:
['zhangsan', [1, 2, 3]]
['zhangsan', [1, 2, 3, 4], [1, 2, 3, 4]]
从输出结果可以发现,当添加的列表发生变化时,先前添加的内容也发生了改变,这会使程序出现意料之外的问题,我们使用 id() 函数验证一下
list1 = ['zhangsan']
a = [1,2,3]
list1.append(a)
print(a, id(a)) # 列表a的引用地址
print(list1[1], id(list1[1])) # 添加到列表后的引用地址
输出:
[1, 2, 3] 2992145244608
[1, 2, 3] 2992145244608
从输出结果可以看出,问题的原因就在引用地址上面。这里补充两个概念
使用 copy.deepcopy() 函数深拷贝列表的内容而不是列表的引用地址
list1 = ['zhangsan']
a = [1,2,3]
list1.append(copy.deepcopy(a))
print(a, id(a)) # 列表a的引用地址
print(list1[1], id(list1[1])) # 添加到列表后的引用地址
输出:
[1, 2, 3] 1963457096704
[1, 2, 3] 1963458936640
由输出结果可以确定,添加后的列表不再引用源列表的地址
使用「深拷贝」添加列表的内容而不是引用地址,从而解决列表同步的问题
list1 = ['zhangsan']
a = [1,2,3]
list1.append(copy.deepcopy(a)) # 深拷贝列表a
print(list1)
a.append(4) # 列表a发生变化
list1.append(copy.deepcopy(a)) # 深拷贝列表a
print(list1) # 列表list1不再同步变化
输出:
['zhangsan', [1, 2, 3]]
['zhangsan', [1, 2, 3], [1, 2, 3, 4]]
列表同步问题解决了
比如,添加列表时,append会添加整个列表,而extend只会添加列表中的值
list1 = ['zhangsan', 'lisi', 'wangwu']
list2 = ['zhangsan', 'lisi', 'wangwu']
list1.append([1,2,3])
print('append添加整个列表:', list1)
list2.extend([1,2,3])
print('extend添加列表的值:', list2)
输出:
append添加整个列表: ['zhangsan', 'lisi', 'wangwu', [1, 2, 3]]
extend添加列表的值: ['zhangsan', 'lisi', 'wangwu', 1, 2, 3]
文章浏览阅读316次。spring基本bean注入方法配置_""
文章浏览阅读1.4k次。此篇文章所有操作都是基于上一篇安装的docker容器内进行操作案例来自于菜鸟教程首先进入容器安装vimapk add vimLua 变量变量就是给一块内存区域赋予一个值。使得程序可以读取和修改相应内存中内容。变量由字母、数字、下划线组成。必须以字母或下划线开头。Lua 是大小写敏感的。变量分为全局变量和局部变量type variable_listlocal a, b = 1, 10 --局部变量c, d = 2, 20 -- 全局变量如果变量只定义了没有初始化_lua_setupvalue
文章浏览阅读1.5k次,点赞2次,收藏15次。ORACLE 的 EMP&DEPT表 建表语句-- 创建表与数据CREATE TABLE EMP(EMPNO NUMBER(4) NOT NULL,ENAME VARCHAR2(10),JOB VARCHAR2(9),MGR NUMBER(4),HIREDATE DATE,SAL NUMBER(7, 2),COMM NUMBER(7, 2),DEPTNO NUMBER(..._oracle emp建表语句
文章浏览阅读9.5k次。第一种方案修改ajax中type方式并设置header,同时对put重新构建数据字典在对views中的方法进行类对象封装时,发现django并不支持像post和get一样将数据封装。 由于网页端无法设置method方法,在用postman和ajax开启pycharm对接口进行debug测试时发现:提交数据后并没有进入代码逻辑。 查阅资料得知,django支持put和delete方法..._django如何简单快速实现put、delete方法
文章浏览阅读2.9w次,点赞17次,收藏45次。先吐槽: 搞了一上午!!! 我太难了!!! 最近服务器不够用, 就差动手算深度学习梯度了!!! 向本科朋友借了几台机子跑, 这要是没上过大学, 研究生还不能毕业了呢!!!目录1. 简单任务介绍2. 本机的配置3. 跳板机的配置4.内网服务器的配置5. 怎么样不需要密码访问嘤嘤嘤~~1. 简单的任务介绍:我现在用的电脑叫做A, 然后借了一台服务器叫做C..._vscode 连接堡垒机
文章浏览阅读1.1k次。例如100行数据填入word,每页固定展示5行,需要20页_python docx设置每页行数
文章浏览阅读1.2k次。Android studio中引入butterKnife在build.gradle的ependencies中添加implementation 'com.jakewharton:butterknife:8.5.1'annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'接下来在项目中的MainActivity中绑定即可,绑定语句应写在setContentView下面: setContentView(R.layout.activ_butterknife 错误: 元素值必须为常量表达式
文章浏览阅读493次。文章目录前言:一、case多分支语句1.1 case语句的结构1.2 case语句应用示例二、for循环语句2.1 for循环语句结构2.2 for语句应用示例三、while 循环语句3.1 while 语句结构3.2 while 语句应用示例总结:前言:除了我们之前讲述的if条件语句外,作为一种脚本编程语言,Shell同样包含循环、分支等其他程序结构,从而能够轻松完成更加复杂的工作,本篇博客..._scl case循环执行
文章浏览阅读2.9k次,点赞2次,收藏7次。TCP中的RST标志(Reset)详解_a_tu_的专栏-程序员宅基地_rst tcp在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接、四次握手怎样把全双工的连接关闭掉、滑动窗口是怎么传输数据的、TCP的flag标志位里RST在哪些情况下出现。下面我会画一些尽量简化的图来表达清楚上述几点,之后再了解下RST攻击是怎么回事。1、TCP是什么?TCP是在IP网络层之上的传输层协议,用于提供port到port面向连接的可靠的字节流传输。我来用土语解释下上面的几个关键字:por_tcp的rst
文章浏览阅读2.1k次,点赞2次,收藏5次。【①】运行项目时出现的端口被占用问题:【②】JS中获取当前时间:【③】一些常用的校验规则:【④】vue 表格中数据默认全部选中:【⑤】vue 获取表格中选中行的数据:【⑥】vue 强制更新数据:【⑦】vue 想要el-input框内文字居中显示:【⑧】vue 清除表单内的内容或者清除表单验证:【⑨】vue 表格分页的两种格式:【⑩】vue 中防止按钮重复点击提交的方法:_el-input 居中
文章浏览阅读2.1w次,点赞9次,收藏50次。Android11及以上 文件读写权限申请_android 11 write_external_storage
文章浏览阅读330次,点赞8次,收藏6次。托管班店铺的装修风格,一定要结合学生喜欢的设计风格,颜色搭配一定要看起来舒适,让学生一进来就有学习的范围,不由自主就想学习的动力,所以装修的风格,是要符合学生学习的环境氛围,让学生一进来想呆着不想走,所以设计方面,一定一定多参考同行的装修风格。想要运营好一家托管班,那么需要有一个正规化的管理流程,那么就要为校区制定各种规章制度,按照规章制度来走,避免后期因为没有任何提示,导致出现一系列的问题,所以要出针对教师,学生,家长的不同规章制度。保护孩子的安全,预防托管机构火灾事故的发生,是托管班一项重要指标。