常用数据类型
数据类型 – 列表:
列表的功能:创建、查询、切片、增加、修改、删除、循环、排序
创建:
List=[‘a’,’b’,’c’]
查询:
List.index(‘a’) =>0
切片:
List[0:3] 返回从索引0-3的元素,不包括3,顾头不顾尾
List[0:-1] 返回从索引0至最后一个值,但是同样包括最后一个值
List[3:6] 返回索引3-6的元素 不包括6
List[3:] 返回从3到最后所有的值
List[:3] 返回从第1个元素到索引3,但不包括3
List[::2] 返回部长为2的所有的值
List[1:6:2] 返回索引1-6的且步长为2的值
增加修改:
List.append(‘A’) #在列表的最后追加一个A
List.insert(3,’B’) #在列表的索引为3的位置插入一个B值
List[3] = ‘Boy’
List[4:6] = ‘ALEX LI’ #把索引4-6的元素改为ALEX LI,不够的元素自动增加
删除
List.pop() #删除最后一个元素
List.remove(‘a’) 删除从左找到的第一个指定元素a
del list[2] #用python全局的删除方法删除制定的索引元素
del list[3:7] #删除多个元素
循环
Lists = [‘a’,’b’,’c’,’d’,’e’,’f’]
for i in lists:
print(i)
排序:
List.sort() #正向排序
List.reverse() #反转
其他用法:
List.extend([1,2,3,4]) # 将一个列表,扩展到list列表中
List.clear() #清空列表
List.copy() #copy方法单讲
List[2][2] 嵌套列表取值
定义列表 list = [] //空列表 list= [‘ccn’,‘zj’,1,2,6,8,9,6,6,6]
单去一个值 list[1] 取出来的就是zj
list.index(1) //取出1这个元素的索引值2
快速的取出一个值 list[list.index(1)]
list.count(6) //查看列表中有多少重复的6
切片(顾头不顾尾)
list[0:2] //取出索引为0,1的元素
lsit[-3:-1] /取出索引为-3,-2的元素
list[-3:] //从索引为-3取到最后一个元素
list[:3] //取出索引为0,1,2的元素
list[:7:2] //从去到索引为6的元素,中间间隔为1
list[::2] 从头取到尾,步长为2
list.append(‘zzzzzj’) 追加
List.insert(0,15) 插入索引为0的元素15
List[2] = ‘zhangjian’ 修改索引值为2的元素为zhangjian
List.remove(‘1’) 删除从左找到的第一个指定元素
del list[3:7] 删除多个元素 列表中3到7的元素 还是顾头不顾尾
List.sort() 排序
List.clear() 清空列表
列表的深浅copy
list2 = list.cpoy() //浅copy 浅cpoy是copy列表的内存地址,元素的内存地址独立
Import copy // 深cpoy 深cpoy是列表中所有的元素全部copy成独立的内存地址
list2 = copy.deepcopy(list)
数据类型-字符串
字符串是一个有序的字符的集合,用于存储和表示基本的文本信息,一对单、双、或三引号中间包括的内容称之为字符串
创建字符串:
S = ‘hello ,beautiful girl,ccn 。 how are you?’
字符串的特性:有序,不可变
S.isdigit() //判断字符串是否为数字
S.count(‘o’) 判断字符串中有几个o元素
s.format() 格式化输出 s.swapcase() //大写变小写,小写变大写
S.find() //查找某一个元素的索引
s.center() //>>> s.center(20,’*’)
‘****hello world*****’
‘ ’.join(list) //将list列表拼接成字符串
S.replace(‘o’,’-’,1) //将字符串中第一个的o换成-
S.split() //默认以空格分离字符串 全分, 只要有空格就分离
S.split(‘o’) //指定以o分离字符串
S.split()
数据类型-元组
元组其实和列表差不多,也是存一组数,只不过他一旦创建,便不能再修改了,所以又叫制度列表
元组的特性: 不可变,元组本身不可变,如果元组中还包含其他可变的元素,这些可变的元素可以改变
元组的功能: 查询,计数,切片
元组的使用场景:1.显示的告知别人,此处数据不可修改 2.数据库连接配置信息
Hash,一般翻译成“散列”,也有直接音译为“哈希”的,就是把任意长度的输入,通过散列算法,变换成固定长度的输出,该输出就是散列值。
特征:hash值是必须不可变的
用途:文件签名、md5加密、密码验证
数据类型-字典
字典一种key-vaue的数据类型,使用就像我们上学用的字典,通过笔画、字母来对应的详细内容
特性:1.key-value结构 2.可以必须可hash、切必须为不可变数据类型、必须唯一 3.可存放任意多个值、可修改、可以不唯一4.无序 5.查找速度快
查找:
>>> info = {‘st1′:’zhangjian’,’st2′:’cc’}
>>> ‘st2’ in info
True
如何在一个变量中存储公司每个员工的个人信息?
字典一种key-value的数据类型,使用就像我们上学用的字典,通过笔画、字符来查对应页的详细内容。
特性: key-value结构 key必须可hash、且必须为不可变数据类型、必须唯一 可存放任意多个值、可修改、可以不唯一 无序 查找速度快
定义字典>>> info = {
… ‘张鉴’:[24,’design’,’UI’,2333],
… ‘CCN’:[22,’teacher’,’children’,1222]}
字典用法 :
查找
“CCN” in info // 判断CCN这个key在不在字典中
info.get(“CCN”) #获取key的value值
info[‘CCN’] //直接输入key值获取value
>>> info[‘pig’] = 1 //增加
>>> info[‘dog’] = 2
info.pop(‘张鉴’)
多级字典嵌套
info.setdefault(2,100) //如果字典里有2这个key 就会把value取出来,如果没有就会创建一个key为2 value为100的值
>>> info.fromkeys([‘A’,’B’,’c’]) //批量添加key值
{‘A’: None, ‘B’: None, ‘c’: None}
>>> info.fromkeys([‘A’,’B’,’c’],’peter’)
{‘A’: ‘peter’, ‘B’: ‘peter’, ‘c’: ‘peter’}
字典循环
>>> for k in info:
… print(k,info[k])
数据类型-集合
集合是一个无序的、不重复的数据组合
作用:1.去重,把一个列表变成集合,自动就去重了 2.关系测试,测试两组数据之间的交集、差集、并集等关系
集合中的元素有三个特征:
1.确定性(元素必须可hash)
2.互异性
3.无序性(集合中的元素没有前后之分),如集合{3,4,5}和{3,5,4}算做同一个集合
包含关系
In , not in : 判断某元素是否存在集合内 == , != ; 判断两个集合是否相等
两个集合之间一般有三种关系,相交、包含、不相交。在Python中分别用下面的方法判断:
1.set.isdisjoint(s): 判断两个集合是不是相交
2.set.issuperswr(s) : 判断集合是不是包含其他集合,等同于a>=b
3.set.issubset(s): 判断集合是不是被其他集合包含,等同于a<=b
Iphone7 = [‘alex’,’rain’,’jack’,’old_driver’]
Iphone8 = [‘alex’,’shanshan’,’jack’,’old_boy’]
both_list = []
for name in Iphone8:
If name in Iphone7:
both_list.append(name)
print(both_list)
集合是一个无序的,不重复的数据组合,它主要的作用如下:
1. 去重,把一个列表变成集合,就自动去重了
2. 关系测试,测试联组数据之前你的交集、差集、并集等关系
定义集合
S = {1,2,3,4}
>>> list
[1, 2, 2, 2, 3, 3, 4, 5, 6]
>>> set(list )
{1, 2, 3, 4, 5, 6}
S.add(10) //增加
S.pop() //随机删除一个数据
S.remove(1) //指定删除1
S.discard(5) //如果集合中没有5也不会报错
S.update([7,8,9]) //拼接
S.clear() //清空集合
S.intersection(s2) == S & s2 交集
S.difference(s2) == s – s2 差集
S.union(s2) == s | s2 并集
s.symmetric_difference(s2) 对称差集
S.issubset(s2) 判断s集合是不是被其他集合包含
S2.issuperset(s) 判断s集合是不是包含s2集合
S. isdisjoint(s2) 判断两个集合是不是相交 ,相交false 不相交true