昨天休息了一天。 今天继续学习
?一.字典类型操作
这里python的字典其实就是java的map集合。只是换了一个名字。
用于保存键值对的数据也就是(key-value)
?1.1?语法
# 字典类型
zidian = {'name':'代码人','age':'19'}
#空字典
zidian2 = {}
dict3 = dict()
1.2使用 添加
# 字典类型
zidian = {'name':'代码人','age':'19'}
print(zidian)
# 如果有就替换值
zidian['name'] = 'lanlan'
print(zidian)
# 新增一个键值对
zidian['id'] = '1'
print(zidian)
?1.3删除
# 字典
dels = {'name':'代码人','age':'19'}
# 删除指定键
del dels['name']
print(dels)
# 清空字典
dels.clear()
print(dels)
?1.4修改
这里有一点刚刚的新增语法和这个一样,语法
字典name[key]=值
如果有key修改没有新增一个
# 字典
dels = {'name':'代码人','age':'19'}
# 修改指定键
dels['name']='lamlamddaimar'
print(dels)
1.5各样查询
# 字典
dels2 = {'name':'代码人','age':'19'}
# 查找指定键
print(dels['name'])
# 查找不存在的key报错
# print(dels2['id'])
print(dels2.get('name'))
print(dels2.get('id',120))
# 获取所有的key
print(dels2.keys())
# 获取所有value
print(dels2.values())
# 将你的键值对分成元组
print(dels2.items())
?1.6循环遍历键值
? ? ??键
# 字典
dels2 = {'name':'代码人','age':'19'}
for key in dels2.keys():
print(key)
?值
# 字典
dels2 = {'name':'代码人','age':'19'}
for key in dels2.values():
print(key)
?
键和值
# 字典
dels2 = {'name':'代码人','age':'19'}
for key in dels2.items():
print(key)
?拆包
# 字典
dels = {'name':'代码人','age':'19'}
for key, va in dels2.items():
print(f'键{key}值{va}')
二.集合
集合有去重功能,所以相同的在一起只显示一个
而且顺序还很迷
2.1创建集合
# 创建集合
s1 = {1,2,3,4,5,6}
print(s1)
s2 = {1,3,2,4,5,6}
print(s1)
s3 = set('ABCDERF')
print(s3)
#创建空集合
s4=set()
?
?2.2?添加
这里有两个添加,一个是add
一个是update使用方法如下,update两个一个会拆开放进去,一个直接放进去
s2 = {1,3,2,4,5,6}
s2.add(12)
s2.update('lui')
s2.update([123],[567])
print(
?2.3删除
两个删除如果集合里面没有值remove报错
discard不报错
s3 = {1,3,2,4,5,6}
s3.remove(2)
s3.discard(2)
print(s3)
?2.4集合查找
很简单in在
not in 不在 返回布尔值
s3 = {1,3,2,4,5,6}
s3.remove(2)
s3.discard(2)
print(2 in s3)
print(2 not in s3)
?三.公共操作
什么是公共操作就是前面哪一些数据类型都支持的操作
?3.1运算符
?加号+合并
str1 = 'aa'
str2 = 'nn'
list1 = [1,2]
list2 = [10,20]
t1 = (1,2)
t2 = (10,20)
dict1 = {'name':'python'}
dict2 = {'age':19}
# *合并
print(str1 +str2)
print(list1 +list2)
print(t1+t2)
?
?*复制
str1 = 'aa'
str2 = 'nn'
list1 = [1,2]
list2 = [10,20]
t1 = (1,2)
t2 = (10,20)
dict1 = {'name':'python'}
dict2 = {'age':19}
print(str1 * 5)
print(list1 *5 )
print(t2 * 5)
?
?in and not in
字典就是在画面加那两个函数
str1 = 'aa'
str2 = 'nn'
list1 = [1,2]
list2 = [10,20]
t1 = (1,2)
t2 = (10,20)
dict1 = {'name':'python'}
dict2 = {'age':19}
print('a' in str1)
print(100 not in list2)
print('name' in dict1)
print('name' in dict1.values() )
?3.2公共方法
一些类型都可以使用的方法
?
?len 统计下标 都差不多我这里只写一个
str1 = '123123123'
print(len(str1))
?删除 del /del()? 删除之后为空输出所以报错
str1 = '123123123'
del str1
print(str1)
?
?查看元素里面最大值最小值
str1 = '123123123'
print(min(str1))
print(max(str1))
?
?range生成几到几之间的数提供循环遍历
for i in range(1,10):
print(i)
?
enumerate感觉嘎嘎好用
list = ['a','s','c','e']
for i,char in enumerate(list):
print(f'下标{i},值{char}')
?四.数据类型转换
三个函数
1 tuple() 将一个序列转换成元组
2list()将一个序列转换成列表
3set()将序列转换成集合
?4.1tuple
list1 = [10,20,30]
s1 = {100,200,300}
print(tuple(list1))
print(tuple(s1))
?
4.2list
t1 = ('a','b','c')
s1 = {100,200,300}
print(list(t1))
print(list(s1))
?4.3set
t1 = ('a','b','c')
s1 = [100,200,300]
print(set(t1))
print(set(s1))
?
?五.推导式/生成式
string没有推导式
就是简化代码使用的分为三个
?5.1列表推导式
用一个表达式创建一个有规律的列表
列表里面的数据时有规律的
?创建一个0-10的列表)(老方法)?
?
?推导式
list1 = [i for i in range(10)]
print(list1)
?
?5.2带if的写法(基数偶数)
list1 = [i for i in range(0,10,2)]
print(list1)
?
?5.3多重for循环推导式
list1 = [(i,j) for i in range(0,10,2) for j in range(3)]
print(list1)
?
?5.4字典推导式
如下字典推导式就是将两个list合成一个字典
?
list1 = {(i,i**2) for i in range(0,10,2)}
print(list1)
?
?
?合并两个list变成一个字典
list1 =['name','age','gender']
list2= ['tpm','12','man']
dict1 = {list1[i] : list2[i] for i in range(len(list1))}
print(dict1)
?5.5提取目标数
感觉用处不打不详细敲了
?
?
5.6集合推导式
?没有用看一下
?六函数
有java基础比较简单
def diyig1(int):
print(int)
diyig1(123)
?
?6.1函数传值
def tishi(q,d):
print(f'输入{q+d}')
tishi(1,4)
?
?6.2返回值
def tishi(q,d):
print(f'输入{q+d}')
return '返回值'
print(tishi(1,5))
?
?6.3函数帮助文档
def tishi(q,d):
"""我是函数帮助文档
参数一
"""
print(f'输入{q+d}')
return '返回值'
help(tishi)
?
?
6.4函数调用
这里和java差不多不难
?
def tishi(q,d):
"""我是函数帮助文档
参数一
"""
print(f'输入{q+d}')
return '返回值'
def this2():
print('嵌套使用')
tishi(1,3)
this2()
?
? ? ? ? ? ? ? ? ? ? ? ? ? ? ?·????????????????????????????????今天就到这里了
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?---------------完结?----------------
?
|