IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 第4章 复合数据类型 -> 正文阅读

[Python知识库]第4章 复合数据类型


学习目标:

  • 掌握四种复合数据类型的定义
  • 掌握四种复合数据类型的使用流程
  • 掌握类型转换和格式化输出的方法
  • 掌握元组和列表的区别
  • 熟悉复合数据类型在实际项目中的使用技巧
  • 了解四种复合数据类型的使用区别

思维导图
在这里插入图片描述

4.1 List(列表)

4.1.1 列表的创建

创建列表:
变量名 = [元素1,元素2,…,元素n]

list类型中区分元素的顺序,且允许包含重复的元素。

4.1.2 基本操作

1. 索引
列表每一个元素都对应一个整数型的索引值,可以通过索引值来得到相应的元素值。同时支持列表元素的正向索引和反向索引。

正向索引即索引值为正,从0开始;

反向索引即索引值为负,从-1开始。若是反向索引,则-1为末尾元素对应的索引编号。

2. 切片
切片操作可以截取列表变量中的部分元素,并返回一个子列表变量。

切片操作中,生成子列表的元素包含起始索引对应的元素,但是不包含终止索引对应的元素。
3. 加法和乘法

  • 加法操作使用加号(+)完成,表示把加号两端的列表变量连接形成一个新列表;
  • 乘法操作使用星号(*)完成,表示对当前列表对象进行复制并连接,并形成一个新列表。

4. 修改和删除

  • 通过索引值对相应元素进行修改或删除。
  • 删除整个列表或列表中的部分元素,使用del命令。删除整个列表后,不可再次引用。

5. 追加插入和扩展

  • append:在当前列表对象尾部追加元素;
  • insert:在当前列表的指定索引位置插入元素;
  • extend:对当前列表元素进行批量增加。

4.1.3 多维列表

创建三个列表类型的变量a、n和x。其中,变量a和n中元素都是基本类型,变量x中的元素都是列表类型。

>>> a = ['a',1] 
>>> n = ['b',2]
>>> x = [a,n]
>>> x
[['a',1],['b',2]]
>>> x[0] # 显示第一个元素 
['a', 1] 
>>> x[0][1] # 显示第一个元素中的第二个元素 
1

直接输入列表的数据,系统会根据输入生成相应的列表维度。

>>>l = [[1,2,3],[4,5,6]]
>>>print(l)
输出结果:
[
[1,2,3],
[4,5,6]
]

也可以使用列表解析方式生成了二维矩阵

cols = 7
rows = 9
list_2d = [[col + 1 for col in range(cols)] for row in range(rows)]
print(list_2d)

4.1.4 迭代器

首先创建了一个列表类型变量lst,然后创建了该列表的迭代器对象lstiter,并且通过该迭代器对象的__next__()方法遍历列表中的元素。
__next__()方法,返回下一个值。iter方法访问列表。

4.1.5 列表解析

>>>list=[1,2,3,4,5,6,7,8,9,10] #方法1:直接指定
>>>list=[]#方法2:先创建一个空列表,然后通过for循环实现
   for n in range(1,11):
      list.append(n);
>>>list(range(1,11)) #方法3:列表解析
[1,2,3,4,5,6,7,8,9,10] 

for循环在这里可以很好的生成list
首先针对数值运算,使用列表解析生成了1到10的平方值;
其次,针对字符运算,使用列表解析生成了指定范围的字母组合列表。

>>> [x * x for x in range(1, 11)] 
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
 
# 或者字母所进行的两层循环
>>> [m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

4.1.6 列表函数和方法

在这里插入图片描述
在这里插入图片描述

4.2 tuple(元组)

4.2.1 元组的创建

创建元组:
变量名 = (元素1,元素2,…,元素n)

注意:
当元组中只包含一个元素时,需要在元素后面添加逗号,否则括号会被当作运算符使用。

4.2.2 基本操作

1. 访问
使用下标索引来访问相应的元素值。也可采用正向索引和反向索引两种方式,并支持切片操作。
2. 修改
元组中的元素值是不允许修改的,可以对元组进行连接生成新的元组。
3. 删除
元素值不允许删除的,但可使用del语句删除整个元组。
需要注意的是,删除后的元组对象不可再次引用。
4. 统计
通过内置的count方法统计某个元素出现的次数。
5. 查找
通过内置的index方法查找某个元素首次出现的索引位置。

4.2.3 元组函数和方法

在这里插入图片描述
在这里插入图片描述
表中的count方法和index方法,实际是元组类型和列表类型所共有的方法,其使用方法和列表完全相同。

4.2.4 元组的优势

  • 可以使函数返回多个值
  • 可以使程序运行性能提升
  • 一般来说,创建元组类型tuple的变量比列表类型list要快,而且占用更小的存储空间。
  • 使用元组是线程安全的
  • 元组类型变量的元素不可更改性,可保证多线程读写时的安全问题。

4.3 dict(字典)

4.3.1 字典的创建

创建字典对象:
变量名=(key1:value1, key2:value2,…, keyn:valuen)

  • 字典的元素是可变的,可以是列表、元组、字典等任意数据类型,但键(key)值必须使用不可变类型。
  • 在同一个字典变量中,键(key) 值必须是唯一的。

4.3.2 基本操作

1. 访问
字典是无序的,没有索引,不能通过下标索引。通过对key值的索引进行访问。
2. 修改
通过对key值的引用对value值的修改操作。
3. 删除
字典的删除操作中,可以删除某个元素或删除整个字典,也可以清空字典元素。.

4.3.3 字典的嵌套

>>>Va1 = {a:{b:1,c:2},d:{e:3,f:4}} #字典的value值是字典
>>>Va2 = {a:[1,2,3],b:[4,5,6]}  #字典的value值是序列
>>>n1={'surname':'wang','name':'gang'}  
>>>n2={'surname':'zhang','name':'san'}  
>>>n3={'surname':'liu','name':'wen'}  
>>>n4=[n1,n2,n3]  #序列的元素是字典

n1、n2、n3是字典类型的变量,n4是列表类型变量,且n4中的元素即为n1、n2、n3。

4.3.4 字典的遍历

username={'full_name':'ZhangWei', 'surname':'Zhang', 'name':'Wei'  }  
#遍历所有的键-值对  
for k,v in username.items():
 print('key:'+k)
    print('value:'+v+'\n')
#遍历所有键  
for k in username.keys():
print(k)
print('key:'+k+'-value:'+username[k])
#遍历所有的值
for v in username.values():
print(v)

4.3.5 字典函数和方法

在这里插入图片描述
在这里插入图片描述

4.4 set(集合)

4.4.1 集合的创建

创建集合对象:
变量名 = {元素1,元素2,…,元素n}

集合特性:

  • 无序性:元素之间没有确定的顺序。
  • 互异性:不会出现重复的元素。
  • 确定性:元素和集合只有属于或不属于的关系。

注意:
创建空集合用set();
{}创建一个空字典。

4.4.2 集合的数学运算

数学运算后依然保持集合的特性,没有重复的元素
在这里插入图片描述

4.4.3 基本操作

1. 更改

  • add():添加一个元素
  • update():同时添加多个元素。

2. 删除

  • discard() 和 remove() 方法删除集合中特定的元素。
  • 若删除的对象不存在,remove()方法会引起错误,discard()方法不会。

4.4.4 不可变集合

在这里插入图片描述

4.4.5 集合函数和方法

在这里插入图片描述

4.5 类型转换和格式化输出

4.5.1 类型转换

不可变数据类型:
内存中不管有多少个引用,相同的对象只占用一块内存;当改变变量值时,必须创建新的对象。

可变数据类型:
对一个变量进行操作时,其值可变;且值的变化并不会引起新建对象的操作,即地址是不会变的,仅内容变化或地址扩充。

通过id()函数获得变量的地址,验证数据类型是否可变
在这里插入图片描述

4.5.2 格式化输出

“%”进行格式化输出
在这里插入图片描述
在这里插入图片描述
使用format()函数进行格式化输出
基本用法:
(1)不带编号,即“{}”;
(2)带数字编号,可调换顺序,即“{1}”、“{2}”;
(3)带关键字,即“{a}”、“{tom}”。
特殊用法:
(1)< (默认)左对齐、> 右对齐、^ 中间对齐、= (只用于数字)在小数点后进行补齐;
(2)取位数“{:4s}”、"{:.2f}"等。

4.6 总结

  1. 介绍四种复合数据类型的定义及使用流程
  2. 介绍类型转换和格式化输出的方法
  3. 介绍复合数据类型在实际项目中的使用技巧
    与区别

4.7 每日一分享

天不生无用之人,地不长无用之草。
黄河尚有澄清日,岂可人无得运时。
雪压寒梅头不低,卧薪尝胆待佳期。
终有一日同风起,扶摇直上九万里。

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:19:14  更:2022-03-30 18:22:28 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 19:46:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码