Python数据结构 - 字典

Python字典是另一种可变容器模型,可存储任意类型对象,由于字典是无序的所以不支持索引和切片

格式为:dict = {k1:v1, k2:v2, k3:v3}

d = {"name":"golemon", "age":999}
  • key不可以重复
  • key不能是可变数据类型
  • key一般为字符串类型

增加

格式:d[key] = value

d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
print(d)

删除

格式:del d[key]

d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
print(d)
del d['sid']
print(d)
del d['name']
print(d)

查找

格式:d[key]

d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
print(d['name'])

更改

格式:d[key] = new_value

d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
d['age'] = 888
print(d)

清空

格式:d.clear()

d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
d['age'] = 888
print(d)
d.clear()
print(d)

取值

setdefault

格式:d.setdefault(k,v)

  • 如果key值存在,那么返回对应字典的value,不会用到自己设置的value
  • 如果key值不存在.返回None,并且把新设置的keyvalue保存在字典中
  • 如果key值不存在,但设置了value,则返回设置的value
d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
d['age'] = 888
# 已存在key设置value,已存在key不会被修改
d.setdefault('sid', 3)
print(d)
# 未存在key设置value,将(key,value)插入到字典中
print(d.setdefault('gender', 'man'))
print(d)
d['unknown'] = None
# 已存在key,但是对于value不存在,则为None
print(d.setdefault('unknown'))

get(k,v)

格式:d.get(k,v)

  • 如果key值存在,那么返回对应字典的value,不会用到自己设置的value
  • 如果key值不存在.返回None,但是不会把新设置的keyvalue保存在字典中
  • 如果key值不存在,但设置了value,则返回设置的value

setdefault()get()区别主要在于是否会修改字典

常用操作

  • len(d):键值对个数
  • d.keys()d.values():返回字典中所有的键/值的列表
  • d.items():返回包含(键,值)元组的列表
  • key in/(not in) d:判断键是否已存在字典当中

遍历

遍历键/值

d = {"name":"golemon", "age":999}
d['school'] = 'uuu'
d['sid'] = 114514198197
d['age'] = 888

# 遍历键
for i in d.keys():
    print(i, end='  ')
print()

# 遍历值
for i in d.values():
    print(i, end='  ')
print()

# 遍历键和值
for i in d.items():
    # 键      值
    print(i[0], i[1])

for i in enumerate(d):
    # 编号    键       值
    print(i[0],  i[1],  d[i[1]])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

golemon.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值