Python数据类型及相关操作
字符串
文本表示
- 单引号、双引号或者三引号都可以,三引号内的字符串可以出现换行符。
- 转义字符,用‘/’表示,比如/‘表示’。
- 字符分编号
- 正序排从0开始,表示第一个字符。
- 倒叙排-1,-2表示倒数第一个、倒数第二个字符。
- 用这种编号可以提取出字符串中想要的字符。
字符串常见操作(字符串是一种序列)
- 获取字符串长度:len(str)
- 切片操作 slice:str【start:end:step】start和end 有区别,start是闭区间,end是开区间。end所指示的值取不到。步长为-1为倒着取字符。
- 加法和乘法:组合和重复字符串
- 判断两个字符是否相等(==)
- 判断字符串中是否包含某个子串 (in)
- 删除空格:
- str.strip:去掉字符串前后空格,内部不受影响。
- str.lstrip:去掉左边的所有空格
- str.rstrip:右边的空格全部删除
- 判断字母数字
- str.isalpha:字符串是否全部是字母构成
- str.isdigit:字符串是否全部是数字构成
- str.isalnum:是否仅是数字和字母构成,不包含特殊字符
- 分割和合并
- 分割split:‘you are my sunshine’.split(’ ')
[‘you’,‘are’,‘my’,‘sunshine’] - ‘-’.jion([‘one’, ‘for’, ‘two’])
‘one-for-two’
- 分割split:‘you are my sunshine’.split(’ ')
- 大小写相关:upper/lower/swapcase ‘abc’.upper
- 左右对齐、居中:ljust/rjust/center
- 替换字符:repalce
变量和引用
python中变量可以随时指向任意一个数据对象,变量的值和类型都可以发生改变。
- 合并赋值: a=b=3
- 按顺序赋值: a,b=5,6
容器类型
列表和元组
- 列表:列表可以删除、添加、替换、重排序列中的元素(可变类型)
- 元组:不能更新的序列(不可变)提高处理性能
- 创建列表:[]或者指明类型list();
- 创建元组:()或者指明类型tuple();
列表和元组中保存的各个数据叫做元素,类型没有限制,像一个收纳盒。 - 列表的操作
- 增长列表:
append:在列表最后加一个元素
insert:在指定位置插入
extend:将另一个列表加入一个列表之后,改变了原列表或元组 - 缩减列表:
pop:根据序号移除,pop()移除最后一个,pop(0)移走第一个元素,并返回其值。
remove:根据值移除,remove(‘abc’)
clear:将所有元素移除 - reverse:头尾反转重排,在原列表上操作。num.reverse();执行完后,num列表内改变。
- sort:按照值的大小排序,在原列表上操作。
- reversed/sorted: num.reversed();执行完后,num列表内不改变。
- index(item):找到item首次出现的位置。
- count(a):返回出现a的次数
- 加法和乘法:链接两个列表/元组,生成一个新的容器。
- 序列的操作等,如切片、in操作、index、count
- 索引: alist[n]
- sum()操作
- min/max操作
- 增长列表:
字典
总的理解:带有标签的收纳盒,可以通过标签(key)来索引值(value)。
-
创建一个字典:花括号{},或者指明类型dict();
-
数据项item,包括key和value;
-
批量添加数据项:student=dict.fromkeys((“name”,“age”)),也可以带入values,暂略。
-
字典是可变类型,可以添加、删除、替换元素。
-
增长字典:合并和关联
- update方法:如果原字典没有该key,则添加该key和对应的value,如果有key,则该key对应的value更新为新的值。
- update方法:如果原字典没有该key,则添加该key和对应的value,如果有key,则该key对应的value更新为新的值。
-
缩减字典
-
del操作:删除指定标签的数据项
-
pop操作:删除指定标签的数据项并返回数据值
-
popitem:删除并返回任意一个数据项
-
clear:清空字典
-
-
标签索引
-
获取字典的标签、数据值和数据项
-
keys函数:返回字典中的所有标签
-
values函数:返回字典中的所有数据值
-
items函数:将每个数据项表示为二元组,返回所有的数据项
-
-
in操作
集合
总的理解:标签的容器或者说是”标签袋“,通过改造字典类型,去掉关联的数据值,只留下标签的容器类型。
集合是不重复元素的无序组合。集合是可变类型。
-
创建集合:{}或者set()
- set()可以创建空集
- 可以用set()从其他序列转换成集合
- 集合会自动忽略重复数据
- 集合中不可加入可变类型数据,因为他是标签的容器。
-
增长集合
-
add:添加一个数据
-
update:批量田间数据
-
-
缩减集合
- remove/discard:删除指定元素,当删除不存在数据时,discard不会报错
- pop:同上
- clear:同上
-
生成新的集合的方法
-
关系的判定
-
交集判断:isdisjoint():两集合交集是否为空。
-
用<,<=,>,>=来判断子集,超集。
-
-
什么时候用集合
- 快速去重复的数据项
- 集合的in判断比其他容器类型快很多
可变类型与不可变类型
不可变类型包括:整数、浮点数、复数、字符串、逻辑值、元组
可变类型:列表、字典、集合。字典和集合都是无序的。只有列表可以排序。
灵活性的强大必然要牺牲一些计算和存储性能。
-
可变类型的引用要十分注意一点
可变类型的变量操作需要注意,多个变量通过赋值引用同一个可变类型对象时,通过其中任何一个变量改变了可变类型对象,其它变量也随之改变,使用id(变量名)可以查看变量在内存中的地址。
建立复杂的数据结构
举例:poi={(100,100):”bus stop“},字典的key是不可变类型包括元组
poi[(100,100)]=“bus stop”
输入与输出
-
input函数:input(prompt),prompt是显示给用户的提示信息,返回值是字符串
-
print函数与格式化输出:
-
input函数:input(prompt),prompt是显示给用户的提示信息,返回值是字符串
-
print函数与格式化输出:
[外链图片转存中…(img-6XFZeHeD-1694939589882)]