目录
一、概论
Ⅰ.前言
- 1.python支持一种数据结构的基本概念是容器,容器是可包含其他对象的对象,两种主要容器有序列(列表和元组),映射(字典)。但是集合既不是序列也不是映射的容器
Ⅱ.通用操作
- 1.索引:python中最基本的数据结构是序列,序列中每个元素都有编号,即位置或者索引,在映射中称键,左边从0开始,右边-1开始。
- 2.切片:适用于字符串,列表,元组
- 1)切片使用索引值来限定范围,从一个大的字符串中切出小的字符串
- 2)格式: 字符串[开始索引:结束索引:步长]
- 3)注意点:
- 指定区间是左闭右开型,从起始位置开始,结束位的前一位结束(不包含结束位本身)
- 从头开始,开始索引 数字可以省略,冒号不能省略
- 到末尾结束,结束索引 数字可以省略,冒号不能省略
- 步长默认为 1,如果连续切片,数字和冒号都可以省略
- 倒序的话,就从-1开始,依次递减
- 3.相加:拼接序列,但是不能拼接列表和字符串。
- 4.相乘:重复这个序列
- 5.成员运算符(in / not in):测试 序列中是否包含指定的成员,对字典操作时,判断的是字典的键
Ⅲ.内置函数
- len(item):计算容器中元素个数
- del(item):删除是变量不是数据
- max(item):返回容器中元素最大值,如果是字典,只针对 key 比较
- min(item):返回容器中元素最小值 ,如果是字典,只针对 key 比较
- type(item) :查看容器数据类型
- id() :查看变量的位置
- list(), dict(),str() ,tuple() :各数据类型的创建函数也是转换函数
- [注]:如果是 数字型,int(),float()进行数据转换
二、字符串
Ⅰ.创建
- 1.使用引号(单引号或双引号或三引号)创建字符串
# 定义一个字符串
a = '子明'
a = "子明"
a = '''子明'''
- 2.变量赋值过程示意图
Ⅱ.运算符
*【注】:格式化下面单独详解
Ⅲ.字符串格式化
- 1.基本用法:将一个值插入到一个有字符串格式符(%s)的字符串中
print ("我叫 %s !" % '子明' )
print ("我叫 %s 今年 %d 岁!" % ('子明', 20))
*【注】详细的字符串格式化符号如下:
- 2.format() 方法格式化’
// 调用format方法,并提供要设置格式的值,去替换用花括号括起来的替换字段,替换字段由三部分组成:- (1)字段名:索引或表示符,指出设置哪个值的格式,并使用结果来替换该字段,也可指定特殊部分,如列表的元素。
- 只需向format提供要设置的未命名参数,并在格式字符串中使用未命名字段,此时顺序将字段和参数匹配,也可以给参数指定名称。
>>> " {foot} { } {bar} { } ".format(1,2,bar=4,foot=3) '3,2,4,1'
- 还可以通过索引指定要在哪个字段中使用相应的未命名参数
>>> " {foot} {1} {bar} {0} ".format(1,2,bar=4,foot=3) '3,2,4,1'
- 只需向format提供要设置的未命名参数,并在格式字符串中使用未命名字段,此时顺序将字段和参数匹配,也可以给参数指定名称。
- (2)转换标志:感叹号后面的单个字符,包括r(repr),s(str) 和 a(ASCII)
- Str 创建外观普通的字符串版本(对字符串不做任何处理),repr创建给定值的python表示,a便是ASCII表示。
- *[注]:pi = π
>>>print( “{pi ! a} {pi ! s} {pi ! r}”.format(pi=”π”)) '\u03c0' π 'π'
- (3)格式说明符:冒号后面的表达式,包括格式类型(如字符串,浮点型或十六进制),字段宽度和数的精度,如何显示符号和千位分隔符,以及对齐和填充方式。
- 一般用格式说明(冒号后面)使用字符表示要转换的值类型
*【注】字符串格式设置中的类型说明符>>> "the number is {num:f}".format(num=42) 'the number is 42.000000'
- . 宽度,精度和千位分隔符
【分析】 :10表示宽度 .2表示精度 f表示格式说明 如果冒号( ; )后面是逗号( ,)表示添加千位符(每隔3位数一个逗号)>>> "pi day is {pi : 10.2f }".format(pi=pi) ' 3.14' >>> " { name:10 }". format (name="Bob") // 很显然数字和字符串对齐方式不同 'Bob '
- 符号,对齐和用0填充
-
在宽度和精度前面加一个标志,这个标志可以是零,加号,减号和空格
- 用0填充 (pi = π)
>>> ' { : 010.2f } '.format(pi) '0000003.14'
- 要指定左对齐,右对齐和居中,分别使用< > 和^,还可以用填充字符来扩充对齐说明符,比如美元符号$
【分析】 而冒号前面的0或1,表示和这个值是正还是负,也可以直接在冒号用+或-来表示。冒号后面也能是=号,将指定填充字符放在符号和数字之前。#号,将触发另外一种转换方式,对于二,八,十六进制,将加一个前缀。对于十进制,必须包含小数点(对于类型g,保留小数点后面的零)
>>> "{:b}".format(42) '101010' >>> "{:#b}".format(42) '0b101010'
-
- (1)字段名:索引或表示符,指出设置哪个值的格式,并使用结果来替换该字段,也可指定特殊部分,如列表的元素。
Ⅳ.常用操作
1.判断类型
- isspace() 如果 string 中只包含空格,则返回 True
- isalnum() 如果 string 至少有一个字符并且所有字符都是字母或数字则返回 True
- isalpha() 如果 string 至少有一个字符并且所有字符都是字母则返回 True
- isdecimal() 如果 string 只包含数字则返回 True,全角数字
- string.isdigit() 如果 string 只包含数字则返回 True,全角数字、⑴、\u00b2
- isnumeric() 如果 string 只包含数字则返回 True,全角数字,汉字数字
- istitle()如果 string 是标题化的(每个单词的首字母大写)则返回 True
- islower() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是小写,则返回 True
- isupper() 如果 string 中包含至少一个区分大小写的字符,并且所有这些(区分大小写的)字符都是大写,则返回 True
2.查找和替换
- startswith(str) 检查字符串是否是以 str 开头,是则返回 True
- endswith(str) 检查字符串是否是以 str 结束,是则返回 True
- find(str, start=0, end=len(string))检测 str 是否包含在 string 中,如果 start 和 end 指定范围,则检查是否包含在指定范围内,如果是返回开始的索引值,否则返回 -1
- rfind(str, start=0, end=len(string))类似于 find(),不过是从右边开始查找
- index(str, start=0, end=len(string))跟 find() 方法类似,不过如果 str 不在 string 会报错
- rindex(str, start=0, end=len(string))类似于 index(),不过是从右边开始
- replace(oldstr, newstr, num=string.count(old))把 string 中的 oldstr 替换成 newstr,如果 num 指定,则替换不超过 num 次
- count(str)计算子串str出现的次数
3.大小写转换
- capitalize() 把字符串的第一个字符大写
- title() 把字符串的每个单词首字母大写
- lower() 转换 string 中所有大写字符为小写
- upper() 转换 string 中的小写字母为大写
- swapcase()翻转 string 中的大小写
4.文本对齐
- ljust(width) 返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
- rjust(width) 返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
- center(width)返回一个原字符串居中,并使用空格填充至长度 width 的新字符串
5.去除空白字符
- lstrip() 截掉 string 左边(开始)的空白字符
- rstrip() 截掉 string 右边(末尾)的空白字符
- strip() 截掉 string 左右两边的空白字符
6.拆分和连接
- partition(str) 把字符串 string 分成一个 3 元素的元组 (str前面, str, str后面)
- rpartition(str) 类似于 partition() 方法,不过是从右边开始查找
- split(str="", num)以 str 为分隔符拆分 string,如果 num 有指定值,则仅分隔 num + 1 个子字符串,str 默认包含 ‘\r’, ‘\t’, ‘\n’ 和空格
- splitlines()按照行(’\r’, ‘\n’, ‘\r\n’)分隔,返回一个包含各行作为元素的列表
- join(seq) 以 string 作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串
三、列表、元组
Ⅰ.定义及创建
- 列表定义:方括号,元素以逗号隔开
- 元组定义:小括号,元素以逗号隔开
- 列表创建:name = list() 或 [] 或 [1,2] 或 [1,[1,2]]
- 元组创建:name = tuple() 或()或 (1,2)或(1,,1,2))
Ⅱ.特点
- 列表:可修改,可重复,可嵌套,支持多种数据
- 元组:不可修改,可重复,可嵌套,支持多种数据
Ⅲ.基本操作
四、字典
Ⅰ.定义及创建
- 定义:花括号,键值对用冒号隔开,每对之间逗号隔开
- 创建:name = dict() 或 {} 或 dict(name = ‘lucy’,age=18)或 dict([(‘name’,‘Tom’),(‘age’,12)])
Ⅱ.特点
- 无序,键唯一(去重),可嵌套,键是不可变类型数据
Ⅲ.基本操作
- 增
- update() : 使用字典里的项更新另一个字典
- 删
- clear() : 删除所有字典项
- pop() : 获取并删除指定键相关联的值
- 改 list_name[键] = 值
- 查
- get() :访问字典项,访问不存在的键,返回None,也可以是你指定的值,访问存在的键
五、集合
Ⅰ.定义及创建
- 定义:花括号,元素以逗号隔开
- 创建 :{ } 或 set() 空集合只能是set函数创建,{}是创建字典的
Ⅱ.特点
- 无序,不重复,元素不可变
Ⅲ.基本操作
- 增
- add():将元素添加到集合当中,如果元素存在,则不进行任何操作
- update() : 更新集合
- 删
- remove() : 将元素从集合中移除,如果元素不存在,则会发生错误
- discard() : 移除集合中的元素,且如果元素不存在,不会发生错误
- pop() : 随机删除一个元素
- clear() : 清空集合
[^1] 各种数据类型的基本方法列举在这,另外还有些内置函数,如果要用到,自己到官方文档查询即可