作业12:字典dict讲解及增删改查等操作

# dict  讲解及增删改查等操作
# 数据类型划分,可变数据类型,不可变数据类型

# 不可变数据类型:元祖 bool int str  (又叫 可哈希)
# 可变数据类型: list(列表)、dict(字典)、set(集合)(又叫 不可哈希 )
# 字典dict key 必须是不可变数据类型,可哈希
         # value 任意数据类型
# dict 优点:二分查找去查询
#            储存大量关系型数据
#      特点:无序的(Python3.5之前是,3.6以后是有序的)

# dic = {
#     'name':['风花雪月','百炼成钢'],
#     'py1':[{'num':71,'avg_age':18,}],
#     True:1,
#     (1,2,3):'m',
#     2:'凤凰',
# }
# print(dic)

# dic1 = {'age':18,'name':'elsa','sex':'male',}
# 增
# dic1['high'] = 185  # 添加新的键值对
# dic1['age'] = 16  # 修改原有键值对  覆盖原有
# print(dic1)   # {'age': 16, 'name': 'elsa', 'sex': 'male', 'high': 185}

# dic1.setdefault('weight',100) # 如果没有该键值就添加
# print(dic1)  # {'age': 18, 'name': 'elsa', 'sex': 'male', 'weight': 100}

# dic1.setdefault('name','alex') # 如果有该键值就不变了(setdefault与dic1['age'] = 16区别在于dic1['age'] = 16直接覆盖原键值,setdefault 有键值不做任何改变 没有才增加)
# print(dic1)  # {'age': 18, 'name': 'elsa', 'sex': 'male'}

# 删 pop.()
# print(dic1.pop('age'))  # 有返回值 按键来删除
# print(dic1)
# 18 # 这是返回的键值
# {'name': 'elsa', 'sex': 'male'} # 这是结果

# print(dic1.pop('呃呃呃',None) ) # 可设置返回值
# print(dic1)
# None # 这是返回的提示 表示没有此键值
# {'age': 18, 'name': 'elsa', 'sex': 'male'} # 这是结果

# dic1.clear() # 清空字典

# 改  update

# dic1['age'] = 16  # 修改原有键值对  覆盖原有

# dic1 = {'age':28,'name':'elsa','sex':'male',}
# dic2 = {'age':18, 'weight': 100,}
# dic2.update(dic1)
# print(dic1) # {'age': 28, 'name': 'elsa', 'sex': 'male'}
# print(dic2) # {'age': 28, 'weight': 100, 'name': 'elsa', 'sex': 'male'}
# 将dic1更新覆盖到dic2中,原dic1不改变

# 查
dic1 = {'age':28,'name':'elsa','sex':'male',}
# print(dic1.keys()) # dict_keys(['age', 'name', 'sex']) 键
# print(dic1.values()) # dict_values([28, 'elsa', 'male']) 值
# print(dic1.items()) # dict_items([('age', 28), ('name', 'elsa'), ('sex', 'male')]) 元祖 元祖里是键值

# for i in dic1:
#     print(i) # 默认打印键  age name sex
# for i in dic1.values():
#     print(i)  # 打印 值  28 elsa male
# for i in dic1.items():
#     print(i)  # 打印 键值  ('age', 28) ('name', 'elsa') ('sex', 'male')

# a = 1
# b = 2
# a,b = b,a
# print(a,b)  # a b  a=2 b=1  数值互换


# for k,v in dic1.items():
#     print(k,v)
# 打印 键值
# age 28
# name elsa
# sex male

# for k,v in dic1.items():
#     for i in k,v:
#         print(i)
# 打印 键值
# age
# 28
# name
# elsa
# sex
# male

# print(dic1.get('name','没有这个键'))
# 字典中如果有返回对应的值 如果没有相关的键 默认返回 None 也可以设置返回值 且不会报错

  

猜你喜欢

转载自www.cnblogs.com/elsa2007/p/10922156.html