码迷,mamicode.com
首页 > 编程语言 > 详细

Python基础知识:字典dict

时间:2018-07-12 20:04:57      阅读:175      评论:0      收藏:0      [点我收藏+]

标签:default   dig   bsp   string   访问   items   创建   字符   判断   

注意:

  # 字典是可变类型
  # 字典中的数据是无序的
  # 一个字典条目的语法是 键:值
  # 任何不可变数据类型都可以作为条目的键

知识点一:创建

键:必须独一无二(如果键重复存入,会被覆盖),只能是不可变类型(常用字符串和数字)
值:可以是任意数据类型

知识点二:访问数据项

通过key------dic[key]
  如果key不存在,报KeyError       没有索引!不能分片!

知识点三:更新数据项

dic[key] = value     如果key不存在,就是新增数据项

知识点四:删除数据项

del dic[key] 删除键是‘key‘的条目
del dict 删除词典

知识点五:字典方法

判断key存在
  *has_key(key)
  *in 、not in

*dict.keys() 返回一个包含字典所有KEY的列表

*dict.values() 返回一个包含字典所有value的列表

*dict.items() 返回一个包含所有(键,值)元祖的列表

dic.pop(key) 删除键key的项并返回key对应的 value值,如果key不存在,报错

dict.clear() 删除字典中的所有项或元素

dict.copy() 返回一个字典浅拷贝的副本

*dict.fromkeys(seq, val=None) 创建并返回一个新字典,以seq中的元素做该字典的键,val做该字典中所有键对应的初始值(默认为None)

***dict.get(key, default=None) 返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)

*adict.update(bdict) 将字典bdict的键值对添加到字典adict中
  key存在,就更新value。key不存在就新增数据项。

  字典合并 update

技术分享图片知识点六:运算

字典不支持拼接和重复操作符(+,*)
字典的比较操作 :长度等、键等、值等

知识点七:迭代

遍历字典的key
  for key in adict.keys():print key

遍历字典的value
  for value in adict.values(): print value

遍历字典的项
  for item in adict.items():print item

技术分享图片

遍历字典的key-value
  for key, value in adict.items(): print ‘key=%s, value=%s‘ %(key, value)

*迭代器
  iter()函数可以将可迭代对象,变成迭代器
  迭代器有next()方法返回下一项,当没有值时,抛出StopIteration错误
  dict.iteritems()、dict.iterkeys()、dict.itervalues()
  与它们对应的非迭代方法一样,不同的是它们返回一个迭代子,而不是一个列表;

知识点八:排序

sorted(dic,value,reverse)

dic为可以迭代的对象,value 为排序的对象(这里指键或键值)
reverse:注明升序还是降序,True--降序,False--升序(默认)
键排序
--sorted(dict.keys())
--sorted(dict.items(), key=lambda item:item[0])
值排序
--sorted(dict.values())
--sorted(dict.items(), key=lambda item:item[1])

*collections:OrderedDict
OrderedDict的Key会按照插入的顺序排列,不是Key本身排序

知识点九:类型转换

其他类型转字典:
  字符串:eval(str)
  列表:
      二维列表转换
          手动构造
          利用zip

  字典转列表:
      list(dic) == dict.keys()
      dict.keys() dict.values()
  字典转元组:
      tuple(dic) -- 只包含key值
字典转字符串:
      str(dic)

 

练习一:把字符串”k1:1|k2:2|k3:3”处理成 python 字典的形式:{‘k3‘: 3, ‘k2‘: 2, ‘k1‘: 1

string = "k1:1|k2:2|k3:3"
dic={}
print string.split("|")
for kv in string.split("|"):
k,v =kv.split(":")
if v.isdigit():
v=int(v)
dic[k]=v
print dic

 

 

 

 

 

 

 

练习二:

技术分享图片

 

Python基础知识:字典dict

标签:default   dig   bsp   string   访问   items   创建   字符   判断   

原文地址:https://www.cnblogs.com/ylpaj/p/9300823.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!