一、List 列表
概述: 列表是python 使用最频繁的一种数据类型
格式:
列表是由 [ ] 里面可以存储不同类型的值 称之为列表
取值方式: 和字符串一样
列表[头下标:尾下标:步长]
实例:
myList = ['a','b',1,2]
print(myList) #原样输出
print(type(myList)) #<class 'list'>
#取值
print(myList[2])
print(myList[-2])
#头下标 和尾下标一起使用
print(myList[0:2]) #ab
#不给头下标和尾下标
print(myList[:])
#只给头下标 不给尾下标
print(myList[0:]) #['a', 'b', 1, 2]
#只给尾下标 不给 头下标
print(myList[:3]) #['a', 'b', 1]
#步长
print(myList[::2])
#列表 倒着输出
print(myList[::-1])
(1) 列表的修改和删除
列表中的索引所应的值 可以被修改和删除 字符串索引对应的值 不可以修改和删除 但是取值方式都一样
实例:
#试一下字符串的
myStr = 'abc'
del myStr[0] #字符串索引所对应的值 不允许修改 和 删除
myList = ['张三',18,'写代码']
# myList = [18,'写代码']
# myList = [18]
print(myList[0])
myList[0] = '李四' #可以修改索引所对应的值
del myList[0] #列表中索引所对应的值可以删除
#删除张三和18 错误的写法
del myList[0],myList[1] #因为在删除 索引对应的值0的以后 整个列表的值的索引 会向前发生移位
#相当于
del myList[0]
del myList[1]
#正确的写法
del myList[0]
del myList[0]
del myList[0],myList[0]
myList[0:2] = '李四' #李四为俩值
myList[0:3] = '李四' #李四为俩值 第三个值 被去除掉
myList[0:2] = '李四五' #['李', '四', '五', '写代码']
myList[0:2] = [] #删除 索引0:2 的值
myList[0:2] = ['a'] #删除 索引0:2 的值
print(myList)
(2) 列表的+和*的使用
*
作为 重复
+
作为链接
实例:
myList = ['a','b','c']
myList1 = ['a']
print(myList*2) #重复当前列表n遍
print(myList1+myList) #字符串的链接
(3) 多维列表
定义方式:
myList1 = ['a','b','c']
myList2 = ['d','e','f']
myList3 = [myList1,myList2]
myList4 = [['a','b','c'],['d','e','f']]
取值方式:
print(myList3[1][2]) #f
print(myList3[1]) #取出索引1对应的列表
print(myList3[0][1:])#bc
(4) 列表中常用的函数
函数名 | 函数说明 |
---|---|
len() | 计算长度 |
myList.count(x) | 统计列表中某个值 重复的次数 |
myList.append(x) | 向列表中追加值(一个值) |
myList.extend(t) | 像列表中追加多个值 |
myList.index() | 找出列表中第一个匹配值的 索引 |
myList.insert(i,x) | 在某个位置 插入值 |
myList.pop() | 弹出最后 一个值 并返回 |
myList.remove(x) | 移除列表中的第一个值的匹配项 |
myList.reverse() | 列表反转 |
myList.sort() | 列表排序 |
myList.clear() | 清空列表 |
myList.copy() | 列表的拷贝 浅拷贝 |
copy.copy(x) | 同上 浅拷贝 |
copy.deepcopy(x) | 深拷贝 拷贝多层 |
拷贝的例子
浅拷贝例子
newList = myList.copy()
myList[0] = '张三'
print(newList)
print(myList)
import copy
newList3 = [['张三','格言','男:昆? 哦'],['李四','格言','答:帘 否']]
# newList4 = newList3.copy()
# newList4 = copy.copy(newList3) #等同于上面的拷贝
newList4 = copy.deepcopy(newList3) #深拷贝 复制多层
newList3[0][2] = '人生就像打麻将 不是点炮就是自摸'
print(newList4)
print(newList3)
二、Tuple 元组
概述:元组的定义和列表几乎相同
定义: 使用小括号 ()来定义,里面可以存储不同类型的值
Tup = (1,)
相同点:
元组的取值 和 列表,字符串 相同
使用方面和 字符串一样
不同点:
-
值不能修改
-
值不能删除
-
在定义元组中值的时候 如果元组中只有一个只 则当前的类型为 值的类型的本身 需要添加逗号,此刻才为元组类型
实例
多维元组
myTup1 = ('a','b','c')
myTup2 = ('d','e','f')
myTup3 = (myTup1,myTup2)
print(myTup3)
print(myTup3[0][0]) #a
三、Set 集合
集合 是一个无序 不重复的元素的序列
基本功能: 进行成员关系 测试 和 去除重复的元素
格式:
使用{}或者 set()来创建 集合
集合的实例:
差集
print(Set1 - Set2) #求set1 和 set2的差集 注意比较顺序
print(Set2 - Set1) #求set2 和 set1的差集 注意比较顺序
并集
print(Set1 | Set2) #不需要注意比较顺序 最终的结果为 去除重复的值 并将俩个结合 合并
print(Set2 | Set1)
交集
print(Set1 & Set2) #a
俩个集合中 不同时存在的元素 去除交集后的元素
print(Set1 ^ Set2)
去除重复元素的例子
Tuple = (100,30,20,30,40,100) #去除重复的值 最终变成列表
print(max(list(set(Tuple)))) #去除重复后 获取最大的值
print(min(list(set(Tuple)))) #去除重复后 获取最小的值
注意:
-
创建一个空集合 使用数据类型转换函数 set() 而不是使用{} 因为创建空字典 使用{}
四、Dictionary 字典
语法格式:
{} 创建一个空字典
{key:value...} #以键值对组成
(1) 创建字典
Dict = {'name':'凤姐','age':18,'爱好':"写代码加班工作"}
(2) 字典得取值
print(Dict['name']) #取出key为 name得值
print(Dict['xx']) #KeyError 不存在得key
(3) 字典值得修改
Dict['name'] = '范冰冰' #如果出现了 同名的key 叫做值的修改
(4) 字典值得添加
Dict['message'] = '以后在 看到有日本的电影的时候 将自觉调节音量的习惯 得改改了' #如果给一个不存在得 key赋值 叫做添加值 默认添加倒最后
(5) 字典得值得删除
del Dict['name'],Dict['age'] #删除值
(6) 字典常用函数
myDict.函数名()
函数名 | 函数说明 |
---|---|
items() | 返回可迭代得序列 |
keys() | 获取所有得key |
values() | 获取所有得值 |
dict2.update(dict1) | 将字典dict1更新倒dict2里面 |
pop(key) | 通过给定key 移除对应得值并返回 |
popitem() | 移除最后一对键值对 并返回 |
copy() | 浅拷贝 |
deepcopy() | 深拷贝 |
clear() | 清空字典 |
get(key【,default】) | 获取字典中得值 如果key不存在且没有给定default值 则返回None |
字典得深拷贝
import copy
Dict = {'a':{'b':'b','c':'c'}}
Dict2 = copy.copy(Dict)
Dict2 = copy.deepcopy(Dict)
Dict['a']['c'] = 'd'
print(Dict)
print(Dict2)
注意:
-
再定义字典得时候 不应该存在重复得key 因为会将前面得覆盖 并且 key是取值得唯一条件
-
如果获取一个不存在得key得时候 会报错 KeyError
-
字典是一个映射类型 ,他的元素是键值对
-
字典得key 为不可变类型 且不能重复
-
字典和字符串...得区别 字典得元素 是通过key存取 而不是通过偏移量来存取得
五、python类型转换函数
函数名 | 函数说明 |
---|---|
int(x) | 将x转换为整形 |
float(x) | 转换为 浮点型 |
str(x) | 将x转换为字符串 |
eval(x) ['i:vl] | 用来计算字符串中得有效表达式 |
tuple(s) | 将序列s转换为元组 |
list(s) | 将序列s转换为列表 |
bool() | 将值转换为bool类型 |
set(s) | 将序列转换为集合 |
dict() | 将序列转换为字典 注意:序列里面得值必须为成对 |