Python基础知识:字典dict

Posted ylpaj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python基础知识:字典dict相关的知识,希望对你有一定的参考价值。

注意:

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

知识点一:创建

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

知识点二:访问数据项

通过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的主要内容,如果未能解决你的问题,请参考以下文章

python字典基础知识

Python-基础知识-字典dict和集合set

15.python 字典dict - python基础入门

python 基础数据类型-字典dict

Python基础-字典篇

Python基础--dict字典操作