【Python】05 |
您所在的位置:网站首页 › 信息的基本类型包括 › 【Python】05 |
目录 一、组合数据类型概述 二、列表 2.1 什么是列表 2.2 列表的基本操作 2.3 列表方法 2.4 操作列表的常用内置函数 2.5 列表推导式 三、元组(tuple)——不可变序列 3.1 什么是元组 3.2 元组的读取 3.3 元组的修改——可修改,但可以生产新的元组对象 3.4 元组的删除 3.5 元组的基本操作 3.6 用于元组的内置函数 3.7 元组的省略写法 3.8 元组存在的意义 四、集合 4.1 常用方法 4.2 集合操作 4.3 集合推导式 4.4 适用场合: 五、字典 5.1 什么是字典 5.2 字典创建 (有多种方法) 5.3 字典读取 5.4 copy():复制字典(浅拷贝) 5.5 update():用一个字典替换另一个字典 5.6 字典删除 5.7 字典推导式 六、应用 1、ds参数默认值判断 练习 一、组合数据类型概述(1)适用场合 很多时候,计算机需要对一组数据进行批量处理, 例如:给定一组单词{python, data, function, list, loop},计算并输出每个单词的长度 (2) 什么是组合数据类型 将多个同类型或不同类型的数据组织起来,通过单一的表示使数据操作更有序更容易。 根据数据之间的关系,组合数据类型可以分为三类: 序列类型:是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他集合类型:是一个元素集合,元素之间无序,不允许出现重复元素映射类型:是“键-值” 数据项的组合,每个元素是一个键值对,表示为(key, value)(3) 序列类型 Python语言中常用的序列类型包括:str(字符串)、 tuple(元组)和list(列表) 元组:包含0个或多个数据项的不可变序列类型,元组生成后是固定的,其中任何数据项不能替换或删除列表:是一个可以修改数据项的序列类型,使用也最灵活序列类型支持成员关系操作符(in)、 长度计算函数(len())、 分片([]),元素本身也可以是序列类型(即嵌套) (4)集合类型 与数学中集合的概念一致,即包含0个或多个数据项的无序组合。集合中元素不可重复,元素类型只能是固定数据类型,例如:整数、 浮点数、 字符串、 元组等,列表、 字典和集合类型本身都是可变数据类型,不能作为集合的元素出现。由于集合是无序组合,它没有索引和位置的概念,不能分片,集合中元素可以动态增加或删除。 集合用花括号 {} 表示(5)映射类型 映射类型是“键-值” 数据项的组合,每个元素是一个键值对,即元素是(key, value),元素之间是无序的。 键值对(key, value)是一种二元关系。 在Python中,映射类型主要以字典(dict)体现。 二、列表 2.1 什么是列表 请注意: 变量名不能使用关键字命名,例如:list、tuple、map等 2.3 列表方法格式: 对象.方法(参数) index(值): 查找某值的第一个匹配项,返回索引值。无匹配项时,抛出异常 比较: extend与append的不同点 insert(索引位置,元素): 在列表指定位置插入元素。但由于列表的自动内存管理功能,insert()方法会涉及到插入位置之后所有元素的移动,这会影响处理速度 说明: 即参数为列表 sum(列表):对数值型列表的元素进行求和运算,对非数值型列表运算则出错,同样适用于元组、range Python程序开发时应用最多的技术之一,它以非常简洁的方式来快速生成满足特定需求的列表,代码具有非常强的可读性。例如: 1)使用列表推导式实现嵌套列表的平铺 2)过滤不符合条件的元素 3)使用多个循环,实现多序列元素的任意组合,并且可以结合条件语句过滤特定元素 问题: ( )、(10)、(10,)的数据类型分别是什么? 3.2 元组的读取与列表相同(左边从0开始,右边从-1开始) 不可删除元组中的元素,但可以删除整个元组对象 表达固定数据项(如字典的key值)、 函数多返回值、多变量同步赋值、 循环遍历、函数可变参数等情况
成员关系测试、 元素去重和删除数据项 当找不到对应的键时,会报错 >>> d1['grade'] Traceback (most recent call last): File "", line 1, in KeyError: 'grade' get()获取指定键对应的值。即使指定键不存在时,也不会报错,返回None,当然也可以指定相应值 >>> d1 {'id': 2021, 'name': 'xu'} >>> d1.get('name') 'xu' >>> print(d1.get('grade')) None >>> d1.get('grade', '对应键不存在') '对应键不存在' 内置方法 keys():返回字典中的键 >>> d2 = {'id':2021, 'name':'xu', 'grade':2} >>> d2.keys() dict_keys(['id', 'name', 'grade']) >>> for key in d2.keys(): ... print(key,end=' ') ... id name grade >>> values():返回字典中的值 >>> d2.values() dict_values([2021, 'xu', 2]) >>> for value in d2.values(): ... print(value, end=' ') ... 2021 xu 2 >>> items()返回字典中的键值对 >>> d2.items() dict_items([('id', 2021), ('name', 'xu'), ('grade', 2)]) >>> for k,v in d2.items(): ... print(k,':',v,end=' ') ... id : 2021 name : xu grade : 2 >>> 5.4 copy():复制字典(浅拷贝) >>> d1 = {'name':'zhang','books':['book1','book2','book3']} >>> id(d1) 2279721142536 >>> d2=d1.copy() >>> id(d2) 2279719966744 >>> d2['name'] = 'li' >>> d2 {'name': 'li', 'books': ['book1', 'book2', 'book3']} >>> d2['books'].remove('book2') >>> d2 {'name': 'li', 'books': ['book1', 'book3']} >>> d1 {'name': 'zhang', 'books': ['book1', 'book3']} 说明: 当在副本中修替换了值时,原字典不受影响;当在修改了某个值(原地修改,不是替换),则原字典会改变。 5.5 update():用一个字典替换另一个字典 >>> old={'one':1, 'two':2, 'three':3} >>> x={'one':11} >>> old.update(x) >>> old {'one': 11, 'two': 2, 'three': 3} >>> y={'four':4} >>> old.update(y) >>> old {'one': 11, 'two': 2, 'three': 3, 'four': 4}说明: 提供字典的项会被添加到原字典中去,若值相同,则被覆盖。 5.6 字典删除 del删除字典中指定键的元素或整个字典;clear(): 删除字典中所有元素pop():删除并返回指定键的元素popitem():删除并返回字典中的一个元素 >>> d={'one':1, 'two':2, 'three':3, 'four':4} >>> del d['one'] >>> d {'two': 2, 'three': 3, 'four': 4} >>> d.pop('three') 3 >>> d {'two': 2, 'four': 4} >>> d.popitem() ('four', 4) >>> d {'two': 2} >>> d.clear() >>> d {} >>> del d >>> d Traceback (most recent call last): File "", line 1, in NameError: name 'd' is not defined请注意: 判断成员资格时,表达式 k in d(d为字典),查找的是键,而不是值 5.7 字典推导式para_list = [] if判断——>二元特征 if sum() = =0: ok else: error 2、批量安装包 练习1、编写函数,用列表为参数,判断有无重复元素,并调用函数来验证;(字段重复) 2、将slist = ['a', 'b', 'cd', 'e', 'f', 'cd', 'g', 'h', 'i'] 转换为 [['a', 'b', 'cd', 'e', 'f'], ['a', 'b', 'cd', 'g', 'h', 'i']] slist = ['a', 'b', 'cd', 'e', 'f', 'cd', 'g', 'h', 'i'] z = [] # 主支 dot_index = [] # 支点的所有位置及最后一个位置 # 输出主支 for i, j in enumerate(slist): if j == 'cd': dot_index.append(i) if i < slist.index('cd'): z.append(j) # 添加最后一个位置 dot_index.append(len(slist)) final_list = [] for i in range(len(dot_index) - 1): final_list.append(z + slist[dot_index[i]:dot_index[i+1]]) print(final_list)3、查看下面2张图片,看看如何将表格数据用字典表示? |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |