图书馆馆建设网站,网站建设费能抵扣吗,注册界面设计,网站备案注销下载Python3中有三种组合数据类型#xff0c;分别为#xff1a;
序列类型#xff1a;字符串#xff08;str#xff09;、元组#xff08;tuple#xff09;、列表#xff08;list#xff09;集合类型#xff1a;集合#xff08;set#xff09;映射类型#xff1a;字典…Python3中有三种组合数据类型分别为
序列类型字符串str、元组tuple、列表list集合类型集合set映射类型字典map
序列类型
Python序列类似于其他语言中的数组。支持双向索引。第一个元素为0最后一个元素为-1
列表
内置可变序列所有元素放在一对中括号中并用逗号分隔。当列表元素增加或者删除时列表对象自动进行扩展或者收缩内存保证元素之间没有缝隙。一个列表中的元素可以各不相同。
创建和删除
使用直接将一个列表赋值给变量即可创建列表对象。也可以使用list()函数将元组、range对象、字符串和其他类型的可迭代对象转化为列表 当列表不再使用时可以用del命令删除整个列表。如果列表对象所指向的值不再有其他对象指向Python将同时删除该值。
元素的增加
使用运算符将元素添加到列表中严格意义上来讲这并不是真的为列表添加元素而是创建一个新列表并将原列表中的元素和新元素依次复制到新列表的内存空间因此效率较慢使用append()方法原地修改列表效率较高直接修改序列变量将会改变所指向的内存地址而不是改变其所指向内存中的值。原地操作通过下标修改、通过序列本身提供的方法将不会改变所指向的内存地址 extend()方法可以将另一个迭代对象的所有元素添加至该列表对象尾部。属于原地操作insert()方法可以将元素添加至列表的指定位置。需要移动后面所有的元素效率较低。使用乘法扩展列表对象 当被扩展列表中的元素是引用的时候扩展后的列表中的元素是相等的引用如果对其中某一个引用所指向的地址空间进行修改指向同一片区域的引用对应的值也会修改根本原因在于乘法操作所进行的是浅复制后面有对浅复制的介绍
元素的删除
使用del命令删除列表中指定位置上的元素 原地操作使用列表的.pop()方法删除并返回元素默认删除最后一个位置的元素remove()方法删除首次出现的指定元素如果不存在抛出异常 解决方法可以使用x[:]深复制详见我之前的博客Python a和a[:]的区别 或者使用del从后往前进行删除
元素的访问和计数
使用下标访问如果超出范围则抛出异常使用index()方法获取指定元素首次出现的下标。若不存在指定元素抛出异常使用count()方法统计指定元素在列表对象中出现的次数
切片操作
适用于列表、元组、字符串、range对象 语法list[begin:end:step]返回一个新列表
切片操作不会因为下标越界而抛出异常而是简单地在列表尾部截断或者返回一个空列表 通过切片操作可以修改和删除列表中的部分元素甚至可以通过切片操作为列表对象增加元素
切片操作是原位操作不会修改所指向的地址空间 切片操作是一种浅复制 浅复制把子列表的引用复制到新列表中这样的话修改任何一个都会影响另外一个 当我们对某个元素进行修改的时候其实修改的是他的引用如果我们修改的是引用所指向的空间那么所有指向该空间的值都会发生改变
排序 这里的reversed对象好像只能访问一次
常用方法 常用内置函数
len(列表)返回列表中元素的个数max() min()返回最大元素或者最小元素sum()对列表元素进行求和同样适用于元组、range zip()返回可迭代的zip对象 enumerate()枚举列表元素返回枚举对象其中每个元素为包含下标和值的元组。该函数对元组、字符串同样有效
列表推导式
在列表推导式中使用多个循环实现多序列元素的任意组合并且可以结合条件语句过滤特定元素 元组
元组和列表类似但属于不可变序列 和列表的区别
元组中的数据一旦定义就不允许更改也没有对应的修改的方法从效果上看tuple()冻结列表而list()融化元组 优点速度比列表快不需要担心被修改更安全元组可以当作字典键特别是包含字符串、树枝和其他元组这样不可变数据的元组。列表永远不能当作字典键使用因为列表是可变的。
创建与删除
使用将一个元组赋值给变量需要注意的是一个元素的时候必须在元素后面加上逗号否则将会当作里面的元素使用tuple()函数将其他序列转换为元组使用del删除元组对象不过不能删除元组中的元素
序列解包 集合
集合是无序可变序列使用一对大括号界定元素不可重复用一个集合中每个元素都是唯一的。
集合中只能包含数字、字符串、运足等不可变类型可哈希类型的数据而不能包含列表、字典、集合等可变类型的数据
创建和删除
等号赋值set()函数进行转换而且会自动去重使用del删除整个集合使用pop()弹出并删除其中一个元素remove()方法直接删除指定元素clear()方法清空集合
集合操作 字典
字典是无需可变序列是实现键值对映射的数据结构 字典是一个键值对的集合该集合以键为索引一个键对应一个值信息。字典中的键可以为任意不可变元素如整数、实数、复数、字符串、元组等。 定义字典时每个元素的键和值用冒号分隔元素之间用逗号分隔所有的元素放在一对大括号中 globals()返回包含当前作用域内所有全局变量和值的字典 locals()返回包含当前作用域内所有局部变量和值的字典
创建和删除
等号赋值 使用dict()利用已有数据创建字典
元素的读取
以键作为下标可以读取字典元素若键不存在则抛出异常用get()方法获取指定键对应的值并且在键不存在的时候返回指定值 使用items()方法可以返回字典的键、值对列表使用key()方法返回键列表使用values()方法返回字典的值列表
元素的添加和修改
以指定键为下标为字典赋值时若键存在则修改该键的值若不存在则添加一个键值对使用update()方法将另一个字典的键值对添加到当前字典对象 使用del删除字典中指定键的元素使用pop()方法删除并返回指定键的元素使用clear()方法删除字典中的所有元素使用popitem()方法删除并返回字典中第一个元素