字典(待补充)

增加/修改一对键值

  • dict[key] = value
  • 有则改之,无则加勉
a = {'name':'xiaoge', 'age':18}
a['face'] = 'cool'
print(a)
a['age'] = 16
print(a)
#{'name': 'xiaoge', 'age': 18, 'face': 'cool'}
 {'name': 'xiaoge', 'age': 16, 'face': 'cool'}

update

  • d1.update(d2)
    • 将d2的字典内容加到d1字典中
d1 = {'name':'xiaoge','age':15}
d2 = {'face':'cool'}
d1.update(d2)
print('value:%s'%d1)
d2.update(d1)
print(d2)
#value:{'name': 'xiaoge', 'age': 15, 'face': 'cool'}
 {'face': 'cool', 'name': 'xiaoge', 'age': 15}
  • d.update(zip(list1, list2))
    • 将两个列表变成字典
data = {}
a = [1,34,3,6]
b = ['haha', 'xixi', 'hoho', 'heihei']
data.update(zip(a, b))
print(data)
#{1: 'haha', 34: 'xixi', 3: 'hoho', 6: 'heihei'}

get setdefault

  • Python 字典 get() 方法和 setdefault() 方法类似,返回指定键的值,如果键不在字典中,返回一个指定值,默认为None
  • setdefault函数的用法
    dict.setdefault(key, default=None)
    功能:如果键不存在于字典中,将会添加该键并将default的值设为该键的默认值,如果键存在于字典中,将读出该键原来对应的值,default的值不会覆盖原来已经存在的键的值
  • get() 和 setdefault() 区别: setdefault() 返回的键如果不在字典中,会添加键(更新字典),而 get() 不会添加键
a = {'int':0}
b = a.get('int')
d = a.get('age',18)
print(b)		#0
print(d)		#18
c = a.get('age')
print(c)		#None
e = a.setdefault('int')
print(e)		#0
print(a)		#{'int': 0}
f = a.setdefault('age',10)
print(f)		#10
print(a)		#{'int': 0, 'age': 10}

pop

  • 删除键值对并且返回这个键值对的值
  • pop() 方法语法:D.pop(key[,default])
  • 参数
    • key: 要删除的键/值对所对应的键
    • default: 可选参数,给定键不在字典中时必须设置,否者会报错(没有默认值),此时返回default值
a = {'name':'xiaoge','age':18,'face':'handsome'}
b = a.pop('name')
c = a.pop('like','yang')	#这样是对的
d = a.pop('age',15) #如果没有age键,则返回设置的默认值15,如果有,返回age对应的值
print(a,b,c,d)
#{'age': 18, 'face': 'handsome'} xiaoge yang 18
#下面的d是错的,因为没有键like,而且没给like设置默认值
d = a.pop('like')	
#KeyError: 'like'

items

  • items()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回
  • 返回可遍历的(键, 值) 元组数组
a = {'name':'xiaoge','age':18,'hobby':'girl'}
for key,value in a.items():
    print('key=',key,'value=',value)
for tuple in a.items():
    print(tuple)
    print(dict[tuple])
#key= name value= xiaoge
 key= age value= 18
 key= hobby value= girl
 ('name', 'xiaoge')
{'name': 'xiaoge'}
('hobby', 'girl')
{'hobby': 'girl'}
('age', 18)
{'age': 18}

两个列表组成字典/两个元素的元组转换成字典

data = {}
a = [1,34,3,6]
b = ['haha', 'xixi', 'hoho', 'heihei']
data.update(zip(a, b))
print(dict(zip(a,b)))
print(data)
#{1: 'haha', 34: 'xixi', 3: 'hoho', 6: 'heihei'}
 {1: 'haha', 34: 'xixi', 3: 'hoho', 6: 'heihei'}

将字符串中的字典提取出

a = '{"name": "xiaoge", "age": 17, "hobby": "girls"}'
import json
dict = json.loads(a)
print(dict, type(dict))
#{'name': 'xiaoge', 'age': 17, 'hobby': 'girls'} <class 'dict'>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值