python学习记录(十)————字典

字典

无序的,可变的键值对集合

对比:

字符串、列表、元组都是有序的;字典是无序的。

字符串、列表、字典是可变的;元组是不可变的。

str = ‘iterm’

list = [iterm]

tuple = (iterm)

dict = {'key':value, 'key':value}

字典可通过key,访问对应的值,使得这种访问更具有意义。

常用操作

增/删/改/查

# 字典:无序可修改的键值对集合
person = {'name': 'huang', 'age': 22, 'school': 'UESTC'}
# 字典的调用
# key不能重复,若重复,后面的会覆盖前面的
print(person['school'])

# 增加dic[key] = value,若key不存在,即为新增操作
person['gender'] = 'male'

# 删
# del dic[key]
del person['gender']
# dic.pop(key),删除指定的键值,返回该key对应的value
print(person.pop('school'))
# dic.popitem(),删除按升序排序后的第一个键值对,并以元组的形式返回该键值对
# 排序是按照key的每一个字符进行比对排序
print(person.popitem())
# dic.clear(),删除字典内的所有键值对。字典本身还存在,仅内容被清空
person.clear()
# del dic 删除字典本身
del person

# 改:只能修改value,不能修改key
# dic[key] = value 修改value
# 批量修改键值对
# oldDic.update(newDic) 根据新字典批量修改旧字典中的键值对
# 如果旧字典没有对应的key,则新增键值对
oldDic = {'name': 'huang', 'age': 22, 'school': 'UESTC'}
newDic = {'name': 'huang', 'age': 18, 'school': 'HDU', 'home': 'AnHui'}
print(oldDic)
oldDic.update(newDic)
print(oldDic)

# 查
person = {'name': 'huang', 'age': 22, 'school': 'UESTC'}
# 方法一:dic[key]
print(person['name'])
# 方法二:dic.get(key, default),查询key对应的value
# 若key不存在,则返回default。不会改变原字典
print(person.get('gender', 'error'))
# 方法三:dic.setdefault(key, default),查询key对应的value
# 若key不存在,则为原字典中添加key: default的键值对
print(person)
person.setdefault('gender', 'male')
print(person)
# 获取所有的值dic.values(),返回列表
print(person.values())
# 获取所有的键dic.keys(),返回列表
print(person.keys())
# 获取所有的键值对dic.items(),返回列表,每个元素是由元组表示的键值对
print(person.items())

"""
    dic.values/dic.keys/dic.items
    在功能上实际是对字典的一个视窗
"""
dic1 = {'name': 'huang', 'age': 22}
dic1Value = dic1.values()
print(dic1Value)
# 对dic1进行增加操作
dic1['school'] = 'UESTC'
# 打印出得结果同步dic1的修改
print(dic1Value)
# 对视窗结果修改类型可固定视窗内容
# list(),tuple()均可
dic1Value = list(dic1Value)
dic1['hone'] = 'AnHui'
print(dic1Value)

遍历

person = {'name': 'huang', 'age': 22, 'school': 'UESTC'}
# 先获得所有的key,再根据Key获得value
keys = person.keys()
for key in keys:
    print(key)
    print(person[key])

# 直接获得所有的键值对
k_v = person.items()
# 得到以元组为表现形式的键值对
for item in k_v:
    print(item)
# 也可直接用两个变量解包元组
for key, val in k_v:
    print(key, val)

计算/判定

person = {'name': 'huang', 'age': 22, 'school': 'UESTC'}
# 计算
print(len(person))
# 判定x in/not in dic,判定dic的key中是否有x
print('name' in person)
print('UESTC' in person)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值