day2-元组 列表-赋值和深浅拷贝
一 元组
元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表
用途:一般情况下用于自己写的程序能存下数据,但是又希望这些数据不会被改变,比如:数据库连接信息等
1. 定义元组
>>> tup = ('a','b','c','d')
2. 访问元组中的元素
>>> tup = ('a','b','c','d') >>> tup ('a', 'b', 'c', 'd') >>> tup[0] 'a' >>> tup[1] 'b' >>> tup[-1] 'd'
View Code
3. 统计(count(元素))
>>> tup = ('a','b','c','a','a') >>> tup.count('a') 3
4. 索引 (index(元素))
>>> tup = ('a','b','c','a','a') >>> tup.index('c') 2
小结:
- 元组中的数据不可以被修改,不可以添加,不可以删除(除非是元组中嵌套列表或者字典,列表和字典的值是可以修改的)
- 元组的获取元素的方式和列表相同,都是通过下标访问,下标值都是从0开始
- 由于元组只能读,所以元组只有count和index两个方法
- 元组的切片功能和列表一样
二 列表
列表是Python最常用的数据类型之一,通过列表可以对数据实现最方便的存储,修改等操作。
1. 定义列表
>>> names = [] #定义空列表 >>> names = ['a','b','c'] #定义一个非空列表
2. 访问列表中的元素
>>> names ['a', 'b', 'c'] >>> names[0] 'a' >>> names[1] 'b' >>> names[2] 'c' >>> names[-1] #还可以倒着取 'c'
注:列表中的下标值是从0开始取的
3. 切片
>>> names = ['apple','huawei','xiaomi','vivo'] >>> names[1:3] #取1到3之间的元素,包括1,不包括3 ['huawei', 'xiaomi'] >>> names[1:-1] #取1到-1之间的元素,包括1,不包括-1 ['huawei', 'xiaomi'] >>> names[0:3] ['apple', 'huawei', 'xiaomi'] >>> names[:3] #从头开始取,0可以省略,效果等同于names[0:3] ['apple', 'huawei', 'xiaomi'] >>> names[2:] #想取到最后一个值,必须不能写-1,只能这么写 ['xiaomi', 'vivo'] >>> names[-3:-1] ['huawei', 'xiaomi'] >>> names[-3:] ['huawei', 'xiaomi', 'vivo'] >>> names[0::2] #后面的2表示:每隔一个元素就取一个 ['apple', 'xiaomi'] >>> names[::2] #从头开始0可以省略,效果跟上一句一样 ['apple', 'xiaomi']
View Code
切片小结:
- 序列始终都是从左向右切片的,不能从右向左
- 列表切片时,起始位的元素是包括的,结束位的元素是不包括(又叫顾头不顾尾),最后一个位置表示步长(names[开始位:结束位:步长])
- 若果从0位置取值,0可以省略
- 想取最后一个值,结束位不能为-1,因为结束位的元素不包括,所以只能留空
4. 追加(append(元素))
>>> names ['apple', 'huawei', 'xiaomi', 'vivo'] >>> names.append('oppo') >>> names ['apple', 'huawei', 'xiaomi', 'vivo', 'oppo'] #'oppo'是新加的元素
View Code
5. 插入(insert(下标值,插入的内容))
>>> names ['apple', 'huawei', 'xiaomi', 'vivo', 'oppo'] >>> names.insert(0,'samsung') #0表示需要插入的下标值,'samsung'表示插入的内容 >>> names ['samsung', 'apple', 'huawei', 'xiaomi', 'vivo', 'oppo'] #在下标值为0的地方插入'samsung' >>> names.insert(4,'neizu') >>> names ['samsung', 'apple', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo']
View Code
6. 修改
>>> names ['samsung', 'apple', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names[1] = 'chuizi' >>> names ['samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo']
View Code
注:修改列表中的元素,直接是names[下标值] = 新元素
7. 拷贝(copy())
>>> names ['samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names2 = names.copy() >>> names2 ['samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo']
View Code
注:这里的copy都是浅copy,只能copy第一层。深浅拷贝的详细信息:python——赋值与深浅拷贝
8. 删除(del , remove() , pop())
>>> names ['samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> del names[1] #根据下标值删除元素 >>> names ['samsung', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names.remove('neizu') #根据元素删除 >>> names ['samsung', 'huawei', 'xiaomi', 'vivo', 'oppo'] >>> names.pop() #删除最后一个 'oppo' >>> names ['samsung', 'huawei', 'xiaomi', 'vivo'] >>> names.pop(0) #在输入下标值的情况下和del的效果是一样的,则是删掉具体某个元素 'samsung' >>> names ['huawei', 'xiaomi', 'vivo'] >>> del names #删除names这个变量 >>> names Traceback (most recent call last):File "<stdin>", line 1, in <module> NameError: name 'names' is not defined
View Code
9. 扩展(extend())
>>> names2 ['samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names1 = ['a','b','c','d'] >>> names1.extend(names2) >>> names1 ['a', 'b', 'c', 'd', 'samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo']
View Code
注:names2 的列表合并到names1中,但是,names2列表依然存在,如果想删除names2这个变量,则只需del names2即可
10. 统计(count())
>>> names1 ['a', 'b', 'c', 'd', 'samsung', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names1.insert(5,'a') >>> names1 ['a', 'b', 'c', 'd', 'samsung', 'a', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names1.count('a') #统计'a'元素的个数 2
View Code
11. 翻转(reverse())
>>> names1 ['a', 'b', 'c', 'd', 'samsung', 'a', 'chuizi', 'huawei', 'xiaomi', 'neizu', 'vivo', 'oppo'] >>> names1.reverse() #将整个列表翻转过来 >>> names1 ['oppo', 'vivo', 'neizu', 'xiaomi', 'huawei', 'chuizi', 'a', 'samsung', 'd', 'c', 'b', 'a']
View Code
12. 排序(sort())
>>> names1 ['oppo', 'vivo', 'neizu', 'xiaomi', 'huawei', 'chuizi', 'a', 'samsung', 'd', 'c', 'b', 'a'] >>> names1.sort() >>> names1 ['a', 'a', 'b', 'c', 'chuizi', 'd', 'huawei', 'neizu', 'oppo', 'samsung', 'vivo', 'xiaomi']
View Code
13. 获取下标值(index('元素'))
>>> names1 ['a', 'a', 'b', 'c', 'chuizi', 'd', 'huawei', 'neizu', 'oppo', 'samsung', 'vivo', 'xiaomi'] >>> names1.index('a') 0 >>> names1.index('huawei') 6
View Code
14. 清空列表(clear())
>>> names1 ['a', 'a', 'b', 'c', 'chuizi', 'd', 'huawei', 'neizu', 'oppo', 'samsung', 'vivo', 'xiaomi'] >>> names.clear() >>> names []
View Code
转载于:https://www.cnblogs.com/Easonlou/p/8124977.html
day2-元组 列表-赋值和深浅拷贝相关推荐
- python——赋值与深浅拷贝
结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来 ...
- Python赋值与深浅拷贝
# coding=utf-8 #Python 赋值 与深浅拷贝 #Python 赋值时会创建一个新的引用,对不可变对象,实际上象创建一个副本,但对可变对象,因为是引用,当对其中一个对象的元素进行操作时 ...
- python基础知识5——赋值与深浅拷贝——整数和字符串,列表元组字典
深浅copy 和很多语言一样,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式. 在学习过程中,一开始对浅拷贝理解很模糊.不过经过一系列的实验后,我发现对这三者的概念 ...
- day02 格式化输出 运算符 编码 字符串 列表 元组 字典 set集合 深浅拷贝
day02学习大纲 一. 格式化输出: %s 占位字符串 %d 占位数字 "xxx%sx %sxx" % (变量, 变量) 二. 运算符: a+=b a = a + b and 并 ...
- python中赋值不正确的_python中的“赋值与深浅拷贝”
Python中,赋值与拷贝(深/浅拷贝)之间是有差异的,这主要源于数据在内存中的存放问题,本文将对此加以探讨. 1 赋值(添加名字) 赋值不会改变内存中数据存放状态,比如在内存中存在一个名为data的 ...
- python赋值、深浅拷贝
赋值: 赋值是绑定对象的引用:只要对象被修改,就会发生变化 深浅拷贝 如果希望将列表复制一份,通过列表的内置方法copy就可以实现: s = [[1,2],3,4]s1 = s.copy()print ...
- Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合
笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...
- 【Python学习】——语言风格(变量赋值、深浅拷贝、for循环陷阱)
目录 1.赋值 2.赋值的分类--引用赋值.值赋值 1) 不可变对象引用赋值--字符串.数值.元组等 2)可变对象引用赋值--列表.集合.字典 3)可变与不可变对象的引用赋值内部分析 4)在py文件中 ...
- python同步赋值原理,Python直接赋值及深浅拷贝原理详解
定义 直接赋值:就是对象的引用(别名) 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象 深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝父对象及其子对象 解释 b = ...
最新文章
- CUDA error: an illegal memory access was encountered
- Google App Engine:在您自己的域中托管应用程序
- VC++中使用内存映射文件处理大文件
- Git Specification
- Pragma Directives
- 【转】人脸识别:AI产品经理需要了解的CV通识
- 利用灰色关联法确定指标权重
- 怎样打开VOIP与SIP
- 计算机网络安全 填空题,计算机网络安全技术选择填空复习题
- Apriori关联分析算法 -尿布与啤酒的故事
- 量子计算机的基本构成,量子计算机的硬件单元 文/李联宁 1. 量子寄存器 存储一系列量子比特的体系称为量子寄存器。假设有一个由3比特构成的寄存器,在经典计算机中,可... - 雪球...
- 用CSS实现HTML图文混排
- 小清新个人简历PPT模板
- DisplayPort接口
- 什么是Google AdWords关键字广告?
- matlab 水波模拟 代码,matlab - 在Matlab中模拟一艘在水波中航行的船 - SO中文参考 - www.soinside.com...
- postma公共变量的设置及使用
- discuz gbk php在utf8,UTF8怎么换成GBK - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...
- 学习stm32单片机,必备工具和软件,你知道几个?
- Python中的psutil:一个用于获得处理器和系统相关信息的模块
热门文章
- 读Java并发编程实践记录_原子性_锁_同步容器详解_任务执行
- hadoop 多机全分布式安装步骤(虚拟机1master+2slave)
- LeetCode MySQL 1076. 项目员工II
- 剑指Offer - 面试题56 - I. 数组中数字出现的次数(异或,分组)
- LintCode 1671. 玩游戏(贪心、难)
- LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)
- LeetCode 79. 单词搜索(回溯DFS)
- LeetCode 32. 最长有效括号(栈DP)
- 302状态码_你见过 HTTP 哪些状态码?
- java jsoup获取cookie_java – 如何使用jsoup维护变量cookie和会话?