python3.6 Dict内置方法

d = {"a1": 11, "a2": 22, "a3": 33}
print(d)
# dict是不能切片的
# 并且只能通过key和value的匹配来获取值
# 当然也不能通过下标来取值
print(d['a1'])
# 11
del d['a2']
print(d)
# {'a1': 11, 'a3': 33}删除某一个元素
d['a2'] = 22
print(d)
# {'a1': 11, 'a3': 33, 'a2': 22}添加元素

print("**********************")

# Demo1 clear 删除所有元素
d.clear()
print(d)
# {}

# Demo2 copy 浅拷贝
d2 = {"a1": 11, "a2": 22, "a3": 33}
d = d2.copy()
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33}

print(id(d), id(d2))
# 4301084928 4301084568

# Demo3 fromkeys 参数需要一个可迭代的对象,如果输入一个字符串那他就是迭代这个字符串,
# 然后将字符串的每一个字符作为一个key去原dict里匹配key,然后组成一个新的dict
# 所以最好使用list作为参数
# 第二个参数是所有key所对应的valuse如果没有,默认为None
d = dict.fromkeys(['a1', 'a3'], 10)
print(d)
# {'a1': 10, 'a3': 10}

d = dict.fromkeys(['a1', 'a2', 'a3'], [1, 2, 3])
print(d)
# 错误用法
# {'a1': [1, 2, 3], 'a2': [1, 2, 3], 'a3': [1, 2, 3]}

# Demo4 get 通过key获取dict的值,第二个参数为默认值(如果没找到,就自动填充默认值,默认为None)
d = {"a1": 11, "a2": 22, "a3": 33}
print(d.get('a2'))
# 22
print(d.get('vvv', "Not Found"))
# Not Found

# Demo 5 items 返回所有元素,包括key和value
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33}

print(d.items())
# dict_items([('a1', 11), ('a2', 22), ('a3', 33)])

# Demo 6 keys 以list的形式返回所有key
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33}

print(d.keys())
# dict_keys(['a1', 'a2', 'a3'])

# Demo 7 pop 根据指定的key删除这一组元素,并且返回值,如果key没找到,返回参数d所赋值的值,默认为None
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33}

print(d.pop('a1'))
# 11

print(d)
# {'a2': 22, 'a3': 33}

print(d.pop('zzz', "Not Found"))
# Not Found

print(d)
# {'a2': 22, 'a3': 33}

# Demo 8 popitem 删除一对数据并且以tuple的形式返回,一般是删除最后一对
d = {"a1": 11, "a2": 22, "a3": 33}
print(d.popitem())
# ('a3', 33)

print(d)
# {'a1': 11, 'a2': 22}

# Demo 9 setdefault 两个参数一个是key,一个valuse
# 如果dict里有这个key,则返回这个key所对应的值,其他不变
# 如果没有,则返回参数value(默认为None),并且在dict内添加这一组元素1
d = {"a1": 11, "a2": 22, "a3": 33}
print(d.setdefault("a1"))
# 11
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33}

print(d.setdefault("a9", 999))
# 999

print(d)
# {'a1': 11, 'a2': 22, 'a3': 33, 'a9': 999}

# Demo 10 update 把一个dict添加到另一个dict内
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33, 'a9': 999}

d.update({11: "aa", 22: "bb", 33: "cc", 44: "dd"})
print(d)
# {'a1': 11, 'a2': 22, 'a3': 33, 'a9': 999, 11: 'aa', 22: 'bb', 33: 'cc', 44: 'dd'}

d = {"a1": 11, "a2": 22, "a3": 33}
d.update({"a1": 111, "a2": 222, "a3": 333})
print(d)
# {'a1': 111, 'a2': 222, 'a3': 333} 如果key相同则更新

# Demo 11 values 以tuple形式返回所有value(所有value会以list形式组成tuple的第一个元素)
print(d)
# {'a1': 111, 'a2': 222, 'a3': 333}

print(d.values())
# dict_values([111, 222, 333])

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值