1、概论
Ⅰ.前言
- 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()进行数据转换
2、字符串
Ⅰ.建立
a = '子明'
a = "子明"
a = '''子明'''
- 2.变量赋值过程示意图
Ⅱ.运算符
*【注】:格式化下面单独详解python
Ⅲ.字符串格式化
- 1.基本用法:将一个值插入到一个有字符串格式符(%s)的字符串中
print ("我叫 %s !" % '子明' )
print ("我叫 %s 今年 %d 岁!" % ('子明', 20))
*【注】详细的字符串格式化符号以下:
git
- 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'
- (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'
*【注】字符串格式设置中的类型说明符
>>> "pi day is {pi : 10.2f }".format(pi=pi)
' 3.14'
>>> " { name:10 }". format (name="Bob") // 很显然数字和字符串对齐方式不一样
'Bob '
【分析】 :10表示宽度 .2表示精度 f表示格式说明 若是冒号( ; )后面是逗号( ,)表示添加千位符(每隔3位数一个逗号)
- 符号,对齐和用0填充
-
在宽度和精度前面加一个标志,这个标志能够是零,加号,减号和空格web
>>> ' { : 010.2f } '.format(pi)
'0000003.14'
- 要指定左对齐,右对齐和居中,分别使用< > 和^,还能够用填充字符来扩充对齐说明符,好比美圆符号$
【分析】 而冒号前面的0或1,表示和这个值是正仍是负,也能够直接在冒号用+或-来表示。冒号后面也能是=号,将指定填充字符放在符号和数字以前。#号,将触发另一种转换方式,对于二,八,十六进制,将加一个前缀。对于十进制,必须包含小数点(对于类型g,保留小数点后面的零)api
>>> "{:b}".format(42)
'101010'
>>> "{:#b}".format(42)
'0b101010'
Ⅳ.经常使用操做
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 中全部的元素(的字符串表示)合并为一个新的字符串
3、列表、元组
Ⅰ.定义及建立
- 列表定义:方括号,元素以逗号隔开
- 元组定义:小括号,元素以逗号隔开
- 列表建立:name = list() 或 [] 或 [1,2] 或 [1,[1,2]]
- 元组建立:name = tuple() 或()或 (1,2)或(1,,1,2))
Ⅱ.特色
- 列表:可修改,可重复,可嵌套,支持多种数据
- 元组:不可修改,可重复,可嵌套,支持多种数据
Ⅲ.基本操做
4、字典
Ⅰ.定义及建立
- 定义:花括号,键值对用冒号隔开,每对之间逗号隔开
- 建立:name = dict() 或 {} 或 dict(name = ‘lucy’,age=18)或 dict([(‘name’,‘Tom’),(‘age’,12)])
Ⅱ.特色
Ⅲ.基本操做
- 增
- update() : 使用字典里的项更新另外一个字典
- 删
- clear() : 删除全部字典项
- pop() : 获取并删除指定键相关联的值
- 改 list_name[键] = 值
- 查
- get() :访问字典项,访问不存在的键,返回None,也能够是你指定的值,访问存在的键
5、集合
Ⅰ.定义及建立
- 定义:花括号,元素以逗号隔开
- 建立 :{ } 或 set() 空集合只能是set函数建立,{}是建立字典的
Ⅱ.特色
Ⅲ.基本操做
- 增
- add():将元素添加到集合当中,若是元素存在,则不进行任何操做
- update() : 更新集合
- 删
- remove() : 将元素从集合中移除,若是元素不存在,则会发生错误
- discard() : 移除集合中的元素,且若是元素不存在,不会发生错误
- pop() : 随机删除一个元素
- clear() : 清空集合
[^1] 各类数据类型的基本方法列举在这,另外还有些内置函数,若是要用到,本身到官方文档查询便可数据结构