五、列表(list)

1、列表的介绍

列表:列表是Python的基础数据类型之⼀ ,其他编程语⾔也有类似的数据类型. 比如JS中的数
组, java中的数组等等. 它是以[ ]括起来, 每个元素⽤’ , '隔开⽽且可以存放各种数据类型:

例:

    lst = ["嘿嘿", "吼吼", ["我是", "列表"], ("I'm", "tuple"), {"dict": "我是字典"}, {"set", "我是集合呀"}, 2]

列表相比于字符串可以存取更多类型的数据,而且可以存放大量的数据。列表是有序的,可以通过索引对列表进行切片取值等操作。

2、列表的索引和切片

列表和字符串一样拥有索引

lst = ["孙悟空", "猪八戒", "沙僧", "唐僧"]
print(lst[0])       # 孙悟空
print(lst[1])       # 猪八戒
print(lst[2])       # 沙僧
print(lst[3])       # 唐僧lst[0] = "齐天大圣"     # 注意:列表是可变类型,可以直接发生改变,和字符串不一样哈
print(lst)      # ["齐天大圣", "猪八戒", "沙僧", "唐僧"]
temp = "天蓬元帅"
temp[0] = "地"
print(temp)     # TypeError: 'str' object does not support item assignment (不可变类型)

列表的切片

lst = ["孙悟空", "猪八戒", "沙僧", "唐僧"]
print(lst[0:2])     # ["孙悟空", "猪八戒", "沙僧"]
print(lst[::2])     # ["孙悟空", "沙僧"]
print(lst[::-1])    # ['唐僧', '沙僧', '猪八戒', '孙悟空']
print(lst[-1:1:-1]) # ["唐僧", "沙僧"]

3、列表的增删该查

注意:列表是可变类型,所以可以直接对列表中的元素进行操作。

lst = ["name", "age", "job", "hobby"]
lst.append("gender")
print(lst)       # ["name", "age", "job", "hobby", "gender"]lst = ["name", "age", "job", "hobby"]
lst.insert(1, "gender")
print(lst)       # ["name", "gneder", "age", "job", "hobby"]  按照索引进行插入lst = ["name", "age", "job", "hobby"]
lst.extend(["gender", "salary"])
print(lst)       # ["name", "age", "job", "hobby", "gender", "salary"]  将可迭代对象进行迭代添加
lst = ["name", "age", "job", "hobby"]
lst.extend("hello")
print(lst)       # ['name', 'age', 'job', 'hobby', 'h', 'e', 'l', 'l', 'o']

lst = ["鬼剑士", "神枪手", "召唤师", "圣职者", "格斗家"]
ret1 = lst.pop()     # 默认删除列表最后一个元素,并且可以取得被删除的元素的值
ret2 = lst.pop(1)        # 也可以指定索引删除
print(ret1)      # 格斗家
print(ret2)      # 神枪手
print(lst)       # ["鬼剑士", "召唤师", "圣职者"]lst = ["鬼剑士", "神枪手", "召唤师", "圣职者", "格斗家"]
lst.remove("圣职者")        # 指定列表中的元素名称进行删除,删除不存在的元素会报错
print(lst)       # ["鬼剑士", "神枪手", "召唤师", 格斗家"]lst = ["鬼剑士", "神枪手", "召唤师", "圣职者", "格斗家"]
del lst[2]       # 使用del删除指定的列表元素,只能使用索引或者切片进行删除
print(lst)       # ["鬼剑士", "神枪手",  "圣职者", "格斗家"]lst = ["鬼剑士", "神枪手", "召唤师", "圣职者", "格斗家"]
lst.clear()      # 清空列表
print(lst)       # []

lst = ["马云", "马化腾", "马良", "马蓉", "马克思"]
lst[1] = "麻花藤"
print(lst)       # ["马云", "麻花藤", "马良", "马蓉", "马克思"]lst = ["马云", "马化腾", "马良", "马蓉", "马克思"]
lst[1:4] = "hello"
print(lst)       # ["马云", "h", "e", "l", "l", "o", "马克思"]

列表是一个可迭代对象,所以可以使用for循环查询

for ele in list:print(i)

其它操作

# 计算"行者孙"在列表中出现的次数
lst = ["孙行者", "行者孙", "者行孙", "行者孙"]
print(lst.count("行者孙"))      # 2# 计算列表的长度
lst = ["孙行者", "行者孙", "者行孙", "行者孙"]
print(len(lst))      # 4# 对列表元素进行翻转
lst = ["孙行者", "行者孙", "者行孙", "行者孙"]
lst.reverse()
print(lst)   # ["行者孙", "者行孙", "行者孙", "孙行者"]# 对列表进行排序
lst = [10,2,45,64,4,16,8]
lst.sort()       # 默认从小到大排序
print(lst)       # [2, 4, 8, 10, 16, 45, 64] lst.sort(reverse=True)   # 加上参数reverse=True变成从大到小排序
print(lst2)      # [64, 45, 16, 10, 8, 4, 2]

列表的嵌套

lst = [1, "夸父", "dogfa", ["jack ma", ["康帅博"], "麻辣干子"]]
# 找到"夸父"
print(lst[1])# 找到“夸父“和”dogfa”
print(lst[1:3])# 将"夸父“替换成”夸母”
lst[1] = lst[1].replace("父", "母")
print(lst)# 将”jack ma“各个首字母大写
lst[3][0] = lst[3][0].title()
print(lst)# 将”康帅博“替换成”康师傅“
lst[3][1][0] = lst[3][1][0].replace("帅博", "师傅")
print(lst)# 将”dogfa“首字母大写
lst[2] = lst[2].capitalize()
print(lst)

循环删除列表中的元素(注意)

lst = ["鬼剑士", "神枪手", "召唤师", "圣职者", "格斗家"]
for  i in lst:lst.remove(i)
print(lst)      # ['神枪手', '圣职者']
# 为什么我们进行for循环时没有将列表中的元素全部删除?因为for循环每循环一次内部索引会加1,而删除了列表中的元素之后,后面的元素会前移,导致删除错乱。
# 第一次循环: ["神枪手", "召唤师", "圣职者", "格斗家"] 删除索引0对应的元素,后面的元素前移
# 第二次循环: ["神枪手", "圣职者", "格斗家"] 删除索引1对应的元素,后面的元素前移
# 第三次循环: ["神枪手", "圣职者"] 删除索引2对应的元素,后面的元素前移# 解决办法1
for i in range(len(lst)):lst.pop()
print(lst)      # []# 解决办法2
lst2 = []
for i in lst:lst2.append(i)for el in lst2:lst.remove(el)
print(lst)      # []

六、元祖(tuple)

元组: 俗称不可变的列表.⼜被成为只读列表, 元组也是python的基本数据类型之⼀, ⽤⼩括
号括起来, ⾥⾯可以放任何数据类型的数据, 查询可以. 循环也可以. 切片也可以. 但就是不能
改.

tu = ("name", "age", "gender")
print(tu)       # ("name", "age", "gender")
print(tu[0])    # name
print(tu[2])    # gender
print(tu[0:2])  # 元祖切片之后还是元祖# for循环遍历元祖
for ele in tu:print(ele)# 尝试修改元祖
tu[0] = "我就是要改变你"   # TypeError: 'tuple' object does not support item assignment (元祖中的元素不支持被修改)# 再次尝试修改元祖
tu = ("你改不了我的", [], "你也改不了我的", "我们中出了一个叛徒")
tu[1] = "我是叛徒"  # 再次修改失败
tu[1].append("我是叛徒")        # 修改成功
print(tu)   # ("你改不了我的", ["我是叛徒"], "你也改不了我的", "我们中出了一个叛徒")# 通过以上结论,我们可以得出:元祖的不可变指的是元祖内的子元素不可变,而子元素的子元素可不可变取决于是否是可变类型的对象。
# 注意:当元祖中只有一个元素时,必须在元素后面加上一个逗号,否则就不是元祖,例:tu = ("name",)
# 元祖同样含有len(), index(), count()方法。

未完待续

Python基本数据类型(二)相关推荐

  1. Python 基本数据类型 (二) - 字符串

    str.expandtabs([tabsize]): str类型的expandtabs函数,有一个可选参数tabsize(制表符大小) 详细来说,expandtabs的意思就是,将字符串中的制表符\t ...

  2. Python基础数据类型之字符串(二)

    Python基础数据类型之字符串(二) 一.字符串的常规操作 二.字符串的大小写转换 1.首字母大写 2. 每个单词首字母大写 3.大写转化为小写 4.所有字母变成大写字母 二.验证码忽略大小写 三. ...

  3. Python基础(二)--数据类型,运算符与流程控制

    目录 Python基础(二)--数据类型,运算符与流程控制 1 数据类型 1.1 Python中的数据类型 1.2 整数类型(int) 1.3 布尔类型 1.4 浮点类型 1.5 复数类型 1.6 类 ...

  4. Python基础(二) 基本数据类型①:整数型、布尔型、字符串

    转载清注明原文地址,谢谢. 一.Python基本数据类型 int : 整数. 主要⽤用来进⾏行行数学运算 str : 字符串串, 可以保存少量量数据并进⾏行行相应的操作 bool : 判断真假, Tr ...

  5. python基础数据类型之列表,元组(基础二)

    第四章 python基础数据类型之列表,元组(基础二) python常用数据类型之组合数据类型:列表,元组. 4.1 列表 list 列表介绍 列表是python的基础数据类型之⼀ ,其他编程语⾔言也 ...

  6. Python——基本数据类型(二):元组、集合与字典

    一.元组 元组表现形式tuple 元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表) 使用()创建元素 元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括 ...

  7. Python基础数据类型之set集合

    Python基础数据类型之set集合 一.set数据类型介绍 二.set集合演示 三.set集合中hash介绍 1.哈希定义 2.数据类型的hash和不可hash 3.set中hash示例 四.set ...

  8. Python基础数据类型之字符串(一)

    Python基础数据类型之字符串(一) 一.字符串格式化 1.字符串占位符 2.字符串格式化操作 二.f-string格式化 三.字符串的索引 四.字符串的切片 1.常规切片使用方法 3.步长的介绍 ...

  9. python的数据类型和变量的定义及使用

    一.数据类型按数值非数值分类 1.python的数据类型可以分为 数字型 和 非数字型. 数字型 整型 (int) 浮点型(float) 布尔型(bool) 复数型 (complex)(主要用于科学计 ...

  10. 第一章 TensorFlow基础——python语法(二)

    简明Python基础(二) 此为jupyter notebook导出文档,如果习惯jupyter界面可以下载文件 链接:https://pan.xunlei.com/s/VMn5sAsjVypJElz ...

最新文章

  1. DialogFragment源码分析
  2. C语言小知识点练习总结
  3. 2019年暑假慈溪集训(更新ing)
  4. 使用命令行工具mc连接SAP云平台Leonardo机器学习服务的AWS存储
  5. 客户端控件调用服务器的参数
  6. 翻译练习:Hadoop概述
  7. idea无法创建class
  8. 几个jquery分发库速度测评
  9. 高等数学线性代数概率论pdf电子教材期末考试考研必备
  10. OSPF特殊区域(末梢区域、NSSA) 路由优化
  11. UM2 3D 打印机 DIY 实践 ( 3) Marlin 固件配置篇
  12. c语言一本书的页码从自然数1开始顺序编码,C++_关于统计数字问题的算法,一本书的页码从自然数1开始顺 - phpStudy...
  13. Elasticsearch-8.2.0安装问题
  14. bootstrap文档第一遍
  15. pfx格式是什么文件
  16. jvm原理解析——不疯魔不成活
  17. 世界上最悲惨的人……
  18. Baxter抓取物块——基于单应性矩阵(一)
  19. python进阶--pandas基本功能
  20. 深度技术 GHOSTXP V6.0 快速装机个人版 (NTFS格式)

热门文章

  1. Visual C++——黄维通《 Visual C++面向对象与可视化程序设计》——例题9-5
  2. BugKuCTF WEB 头等舱
  3. Little Sub and Johann
  4. 桂林电子科技大学计算机导论,Welcome to Guilin University of Electronic Technology(桂林电子科技大学)...
  5. linux命令 su和sudo,解析Linux中sudo,su与su -的异同
  6. cn域名注册十元_网站域名查询、域名注册流程详解
  7. redmine2.4.2 插件安装
  8. JavaWeb黑马旅游网-学习笔记05【分类数据展示功能】
  9. Bootstrap4+MySQL前后端综合实训-Day04-AM【新闻管理手机端页面+数据库操作(PowerDesigner 图形化数据库设计软件、SQLyog软件)】
  10. 高三英语作文【展示】——那夕阳下的奔跑是我逝去的青春