一 元组

元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表

用途:一般情况下用于自己写的程序能存下数据,但是又希望这些数据不会被改变,比如:数据库连接信息等

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

小结:

  1. 元组中的数据不可以被修改,不可以添加,不可以删除(除非是元组中嵌套列表或者字典,列表和字典的值是可以修改的)
  2. 元组的获取元素的方式和列表相同,都是通过下标访问,下标值都是从0开始
  3. 由于元组只能读,所以元组只有count和index两个方法
  4. 元组的切片功能和列表一样

二 列表

列表是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

切片小结:

  1. 序列始终都是从左向右切片的,不能从右向左
  2. 列表切片时,起始位的元素是包括的,结束位的元素是不包括(又叫顾头不顾尾),最后一个位置表示步长(names[开始位:结束位:步长])
  3. 若果从0位置取值,0可以省略
  4. 想取最后一个值,结束位不能为-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-元组 列表-赋值和深浅拷贝相关推荐

  1. python——赋值与深浅拷贝

    结合python变量存储的特性从内存的角度来谈一谈赋值和深浅拷贝~~~ 预备知识一--python的变量及其存储 在详细的了解python中赋值.copy和deepcopy之前,我们还是要花一点时间来 ...

  2. Python赋值与深浅拷贝

    # coding=utf-8 #Python 赋值 与深浅拷贝 #Python 赋值时会创建一个新的引用,对不可变对象,实际上象创建一个副本,但对可变对象,因为是引用,当对其中一个对象的元素进行操作时 ...

  3. python基础知识5——赋值与深浅拷贝——整数和字符串,列表元组字典

    深浅copy 和很多语言一样,Python中也分为简单赋值.浅拷贝.深拷贝这几种"拷贝"方式. 在学习过程中,一开始对浅拷贝理解很模糊.不过经过一系列的实验后,我发现对这三者的概念 ...

  4. day02 格式化输出 运算符 编码 字符串 列表 元组 字典 set集合 深浅拷贝

    day02学习大纲 一. 格式化输出: %s 占位字符串 %d 占位数字 "xxx%sx %sxx" % (变量, 变量) 二. 运算符: a+=b a = a + b and 并 ...

  5. python中赋值不正确的_python中的“赋值与深浅拷贝”

    Python中,赋值与拷贝(深/浅拷贝)之间是有差异的,这主要源于数据在内存中的存放问题,本文将对此加以探讨. 1 赋值(添加名字) 赋值不会改变内存中数据存放状态,比如在内存中存在一个名为data的 ...

  6. python赋值、深浅拷贝

    赋值: 赋值是绑定对象的引用:只要对象被修改,就会发生变化 深浅拷贝 如果希望将列表复制一份,通过列表的内置方法copy就可以实现: s = [[1,2],3,4]s1 = s.copy()print ...

  7. Python笔记_07_列表的相关操作_列表相关函数_深浅拷贝_字典相关函数_集合相关函数_冰冻集合

    笔记目录 列表的相关操作 列表的拼接(同元组) 列表的重复 (同元组) 列表的切片 (同元组) 列表的获取 (同元组) 列表的修改 (可切片) 列表的删除 ( 可切片 ) 列表的相关函数 append ...

  8. 【Python学习】——语言风格(变量赋值、深浅拷贝、for循环陷阱)

    目录 1.赋值 2.赋值的分类--引用赋值.值赋值 1) 不可变对象引用赋值--字符串.数值.元组等 2)可变对象引用赋值--列表.集合.字典 3)可变与不可变对象的引用赋值内部分析 4)在py文件中 ...

  9. python同步赋值原理,Python直接赋值及深浅拷贝原理详解

    定义 直接赋值:就是对象的引用(别名) 浅拷贝(copy):拷贝父对象,不拷贝对象内部的子对象 深拷贝(deepcopy):copy模块的deepcopy方法,完全拷贝父对象及其子对象 解释 b = ...

最新文章

  1. CUDA error: an illegal memory access was encountered
  2. Google App Engine:在您自己的域中托管应用程序
  3. VC++中使用内存映射文件处理大文件
  4. Git Specification
  5. Pragma Directives
  6. 【转】人脸识别:AI产品经理需要了解的CV通识
  7. 利用灰色关联法确定指标权重
  8. 怎样打开VOIP与SIP
  9. 计算机网络安全 填空题,计算机网络安全技术选择填空复习题
  10. Apriori关联分析算法 -尿布与啤酒的故事
  11. 量子计算机的基本构成,量子计算机的硬件单元 文/李联宁 1. 量子寄存器 存储一系列量子比特的体系称为量子寄存器。假设有一个由3比特构成的寄存器,在经典计算机中,可... - 雪球...
  12. 用CSS实现HTML图文混排
  13. 小清新个人简历PPT模板
  14. DisplayPort接口
  15. 什么是Google AdWords关键字广告?
  16. matlab 水波模拟 代码,matlab - 在Matlab中模拟一艘在水波中航行的船 - SO中文参考 - www.soinside.com...
  17. postma公共变量的设置及使用
  18. discuz gbk php在utf8,UTF8怎么换成GBK - Discuz!-安装使用 - Discuz! 官方站 - Powered by Discuz!...
  19. 学习stm32单片机,必备工具和软件,你知道几个?
  20. Python中的psutil:一个用于获得处理器和系统相关信息的模块

热门文章

  1. 读Java并发编程实践记录_原子性_锁_同步容器详解_任务执行
  2. hadoop 多机全分布式安装步骤(虚拟机1master+2slave)
  3. LeetCode MySQL 1076. 项目员工II
  4. 剑指Offer - 面试题56 - I. 数组中数字出现的次数(异或,分组)
  5. LintCode 1671. 玩游戏(贪心、难)
  6. LeetCode 103. 二叉树的锯齿形层次遍历(BFS / 双栈)
  7. LeetCode 79. 单词搜索(回溯DFS)
  8. LeetCode 32. 最长有效括号(栈DP)
  9. 302状态码_你见过 HTTP 哪些状态码?
  10. java jsoup获取cookie_java – 如何使用jsoup维护变量cookie和会话?