Python基础14:字典

# 作用:
# 定义: {}内用逗号分隔开的多个key:value 其中value可以使用任意类型,但是key必须是不可变类型
# 定义字典的3中方式:
# 方式1
d = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3', (1, 2, 3): 222}
print(d['k1'])  # v1
print(d[(1, 2, 3)])  # 222
print(type(d))  # <class 'dict'>

# 方式2
d = dict()  # 或者 d = {}
print(d)
# {}
print(d, type(d))
# {} <class 'dict'>

# 方式3
d = dict(x=1, y=2, z=3)
print(d, type(d))
# {'x': 1, 'y': 2, 'z': 3} <class 'dict'>

# 方式4: {}.fromkeys()
keys = {'name', 'age', 'sex'}
d = {}.fromkeys(keys)
print(d, type(d))
# {'age': None, 'name': None, 'sex': None} <class 'dict'>

# 3、数据类型转换
info = [
    ['a', 'aaa'],
    ('age', 18),
    ['b', 'bbb']
]
print(info, type(info))
# [['a', 'aaa'], ('age', 18), ['b', 'bbb']] <class 'list'>

d = {}
for item in info:
    d[item[0]] = item[1]
print(d, type(d))
# {'a': 'aaa', 'age': 18, 'b': 'bbb'} <class 'dict'>

d = {}
for k, v in info:
    d[k] = v
print(d, type(d))
# {'a': 'aaa', 'age': 18, 'b': 'bbb'} <class 'dict'>

# 一行代码搞定上述类型转换操作
d = dict(info)
print(d, type(d))
# {'a': 'aaa', 'age': 18, 'b': 'bbb'} <class 'dict'>


# 4、内置方法:
# 优先掌握的操作:
# 1、按key存取值 : 可存可取
d = {'k': 'v'}
# key存在,则修改
d['k'] = 'kkkkkkkkk'
print(d)
# {'k': 'kkkkkkkkk'}
# key不存在。则新增
d['k2'] = 'v2'
print(d)
# {'k': 'kkkkkkkkk', 'k2': 'v2'}

# 2、长度len
print(len({'1': 1, '2': 2, "3": 3, '1': 1111}))
# 3
# 3、成员运算 in  not in
d = {'1': '1', '2': 2}
print('1' in d)  # True
print('1' not in d)  # False

# 4、删除
d = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
# 4.1、通用删除 del
del d['k2']
print(d)
# {'k1': 'v1', 'k3': 'v3'}

# 4.2、pop删除:根据key删除元素,返回删除key对应的value值
d = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
d.pop('k2')
print(d)
# {'k1': 'v1', 'k3': 'v3'}

# 4.3、 popitem()删除: 随机删除,返回被删除的key value组成的元祖
d = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
res = d.popitem()
print(res)
# ('k3', 'v3')
print(d)
# {'k1': 'v1', 'k2': 'v2'}

# 5、 键keys() 值values() 键值对items()
d = {'k1': 'v1', 'k2': 'v2', 'k3': 'v3'}
print(d.keys())
# dict_keys(['k1', 'k2', 'k3'])
print(d.values())
# dict_values(['v1', 'v2', 'v3'])
print(d.items())
# dict_items([('k1', 'v1'), ('k2', 'v2'), ('k3', 'v3')])


# 6、循环
for k in d.keys():
    print(k)
# k1
# k2
# k3

for v in d.values():
    print(v)
# v1
# v2
# v3

for item in d.items():
    print(item)
# ('k1', 'v1')
# ('k2', 'v2')
# ('k3', 'v3')


# 需要掌握的内置方法:
d = {'k1': 'v1'}
# 1、清空字典 clear()
# d.clear()
# print(d)  # {}

# 2、update() : 如果key已存在就更新,否则就添加
d.update({'k2': 'v2', 'k3': 'v3', 'k1': 11111111111})
print(d)
# {'k1': 11111111111, 'k2': 'v2', 'k3': 'v3'}

# 3、get()  :  key不存在就会返回None
print(d.get('k11111')) # None

# 4、setdefault() 给key设置默认值,如果key存在,就不改其value,不存在,就添加该key,对应的value就是后面设置的默认值
# 有返回值,返回该key对应的value值
d.setdefault('k1','22222222222222')
print(d)
# {'k1': 11111111111, 'k2': 'v2', 'k3': 'v3'}

res=d.setdefault('k10',10)
print(d)
{'k1': 11111111111, 'k2': 'v2', 'k3': 'v3', 'k10': 10}
print(res)
# 10 返回值为该key的对应的value值
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值