@Time :2021/4/7 20:51
@Author: 小被几
@File :demo01.py
"""
三、字典操作
1、增
dict_1={key:val,key2:val}
2、删除(通过key)
1、del dict_1['key1']
2、dict.pop('key1')
返回被删除key的value
3、dict.popitems()
返回被删除元素的(key,val)
3、修改(重点)
1、dict_1['key1']='8888'
如果修改的Key不存在,那么会自动新增一个键值对
2、dict_1.setdefault('key','value')
key存在不做任何操作,key不存在就新增键值对
3、dict_1.update(dict_2) 面试题
将dict_2合并到dict_1,key存在直接覆盖value的值,key不存在就直接添加到dict_1
4、查询(重点)
通过key 获取val
1、dict_1 = {'key1': 'val1', 'key2': 'val2'}
result = dict_1['key1']
2、result2 = dict_1.get('key3', 'val3')
print(result2)
当key3不存在的时候返回val3,如果存在直接返回对应value的值
3、dict.keys()
dict_1 = {'key1': 'val1', 'key2': 'val2'}
keys = dict_1.keys()
print(keys)
print(type(keys))
print('*' * 20)
new_list = list(keys)
print(new_list[0])
print(type(new_list))
4、dict.values()
dict_1 = {'key1': 'val1', 'key2': 'val2'}
keys = dict_1.values()
print(keys)
print(type(keys))
print('*' * 20)
new_list = list(keys)
print(new_list[0])
print(type(new_list))
5、dict.items()
dict_1 = {'key1': 'val1', 'key2': 'val2'}
print(list(dict_1.items()))
四、深浅拷贝
1、浅拷贝
浅拷贝只会拷贝第一级目录,第二级目录还是应用
2、深拷贝
深拷贝拷贝第一层目录,和第二层目录
五、遍历
[1,2,3,4,5,6]
1、遍历key
2、遍历value
3、遍历items
六、排序
加密的时候
内存地址:丰巢 编号 盒子
key1:1 key2:2 key3:3
深 盒子 编号 东西+编号 放到新的盒子里面
浅 盒子 编号 编号 放到新的盒子里面
new_dict={'key1':'内存地址里面的东西','key2':'2'}
深拷贝
import copy
dict_2 = {'key1': 'val1', 'key2': 'val2','key3':[1,2,3,4]}
new_dict2=copy.deepcopy(dict_2)
print('老字典:',dict_2,id(dict_2))
print('新字典:',new_dict2,id(new_dict2))
dict_2['key3'].append('test')
print('老字典:',dict_2,id(dict_2))
print('新字典:',new_dict2,id(new_dict2))
print(id(dict_2['key3']))
print(id(new_dict2['key3']))
print('='*50)
浅拷贝
dict_1 = {'key1': 'val1', 'key2': 'val2','key3':[1,2,3,4]}
print(type(dict_1))
new_dict = dict_1.copy()
print('老字典:',dict_1,id(dict_1))
print('新字典:',new_dict,id(new_dict))
key3_value=dict_1['key3']
key3_value.append('test')
print(key3_value,type(key3_value))
print('老字典2:',dict_1,id(dict_1))
print('新字典2:',new_dict,id(new_dict))
print(id(dict_1['key3']))
print(id(new_dict['key3']))
清空 dict_1.clear()
dict_1 = {'key1': 'val1', 'key2': 'val2','key3': 'val3','key4': 'val4'}
dict_1.clear()
print(dict_1)
后进先出
dict_1 = {'key1': 'val1', 'key2': 'val2','key3': 'val3','key4': 'val4'}
res=dict_1.popitem()
res2=dict_1.popitem()
print(res)
print(res2)
print(dict_1)
dict_1.pop('key1')
dict_1 = {'key1': 'val1', 'key2': 'val2'}
res=dict_1.pop('key1')
print(res)
print(dict_1)
del dict_1['key1']
dict_1 = {'key1': 'val1', 'key2': 'val2'}
del dict_1['key1']
print(dict_1)
dict_1 = {'key1': 'val1', 'key2': 'val2'}
dict_2 = {'key3': 'val3', 'key4': 'val4'}
print(dict_1)
dict_1.update(dict_2)
print(dict_1)
setdefault
dict_1 = {'key1': 'val1', 'key2': 'val2'}
dict_1.setdefault('key3','888')
print(dict_1)
key存在就是修改,不存在就是新增
dict_1 = {'key1': 'val1', 'key2': 'val2'}
dict_1['key3']='8888'
print(dict_1)
通过key 修改value
dict_1 = {'key1': 'val1', 'key2': 'val2'}
dict_1['key1']='8888'
print(dict_1)
获取字典的key、val
dict_1 = {'key1': 'val1', 'key2': 'val2'}
print(list(dict_1.items()))
集合
一、特点
1、无序
2、元素不可以重复
3、不支持索引取值
二、相关操作
1、创建
set1={1,2,3}
2、添加元素
set1.add()
3、删除
pop、remove、clear
三、去重(记住)
list1 = [1,1,2,2,3,3,4,4,5,5,6,6]
new_list = list(set(list1))
print(new_list,type(new_list))
四、数据类型转换(了解)
语法:关键字(对象) int、list、tuple、set
1、int str 相互转换
2、list tuple 相互转换
3、list set 相互转换
4、tuple set 相互转换
拓展 数据类型转换
tuple1={1,2,3,4,5}
print(tuple(tuple1))
list tuple 相互转换
tupe1=[1,2,3,4,5]
print(tuple(tupe1))
int str 相互转换
str_1=100
print(type(str(str_1)))
一、流程
1、事务进行的次序或者顺序,就叫流程
2、流程分类
顺序:代码从上往下执行
选择结构:根据条件执行
循环:根据条件循环执行
标准的if esle
num1 = input('用户输入:')
if int(num1) > 1:
print('条件满足')
else:
print('条件不满足')
单if语句
num1=10
if num1 > 1:
print('num1 大于1')
"""