字典
博客专区 > dfkjih 的博客 > 博客详情
字典
dfkjih 发表于2年前
字典
  • 发表于 2年前
  • 阅读 5
  • 收藏 0
  • 点赞 1
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

1. 创建字典

>>> dict((["a", 1], ["b", 2])) # ⽤两个序列类型构造字典
{'a': 1, 'b': 2}
>>> dict(zip("ab", range(2)))
{'a': 0, 'b': 1}
>>> dict(map(None, "abc", range(2)))
{'a': 0, 'c': None, 'b': 1}
>>> dict.fromkeys("abc", 1) # ⽤序列做 key,并提供默认 value,原dict不会改变,通常用来赋值给一个变量
{'a': 1, 'c': 1, 'b': 1}
>>> {k:v for k, v in zip("abc", range(3))} # 字典解析
{'a': 0, 'c': 2, 'b': 1}
>>> d = {"a":1, "b":2}
>>> d.setdefault("a", 100) # key 存在,直接返回 value
1
>>> d.setdefault("c", 200) # key 不存在,先设置,后返回
200
>>> d
{'a': 1, 'c': 200, 'b': 2}
7 / 75

2. 合并字典

>>> z = dict(list(x.items()) + list(y.items()))
>>> z
{'a': 1, 'c': 11, 'b': 10}

还可以这样:

z = x.copy()
z.update(y)

3. 删除key

del d['key']
value = d.pop('key') #删除并返回值
d.clear() #清空

4. 添加/更新

#另一个字典
d.update({'key':'newvalue'})  #这里支持一整组值
#元组列表
d.update( [ ('a',1), ('b',2) ] ) #每个元组两个元素,(key,value)
#**key
d.update(c=3, e=4)

5. 排序

from operator import itemgetter
aa = {"a":"1","sss":"2","ffdf":'5',"ffff2":'3'}
#直接sorted返回keys的列表
bb = sorted(aa)
print bb
#以values排序
sort_aa = sorted(aa.items(),key=itemgetter(1))
print sort_aa
#以key排序
sort_aa_key=[]
for k in sorted(aa):
    sort_aa_key.append((k,aa[k]))
print sort_aa_key
结果:
['a', 'ffdf', 'ffff2', 'sss']
[('a', '1'), ('sss', '2'), ('ffff2', '3'), ('ffdf', '5')]
[('a', '1'), ('ffdf', '5'), ('ffff2', '3'), ('sss', '2')]

其他:

d = {'a':1, 'b':2}
d['a']  #得到1,但是若键不存在,将引发异常KeyError。慎用,建议不使用
d.get('c', 3) #得到3,
get方法,若是键不存在,返回第二个参数default_value.若是没有设default_value返回None


  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 0
博文 21
码字总数 13951
×
dfkjih
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: