python之字典

为什么需要字典

In [1]: list1 = ['name','age','class']

In [2]: list2 = ['haha',14,'linux']

In [3]: zip(list1,list2)
Out[3]: [('name', 'haha'), ('age', 14), ('class', 'linux')]

zip函数可以将两个列表结合
字典就如中文字典,起到索引并快速找到想要的信息的作用,在python中,字典是python中唯一的映射类型,key-value对应类型,字典对象是可变的,但key必须用不可变对象,字典可以有效减少任务的繁琐

字典的定义

简单字典的创建

##字典的定义一般以{key:value}模式
In [4]: dic = {'name':'cici','age':14}

In [5]: type(dic)
Out[5]: dict

##字典的key索引,由于key是不可变对象,所以不可以用0,1.. 来索引,要用字符来索引
In [6]: dic['name']
Out[6]: 'cici'

In [7]: dic[0]
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-7-c3244007d783> in <module>()
----> 1 dic[0]

KeyError: 0

##由于value值是可变的,所以可以用位置参数来索引
In [8]: dic['name'][0]
Out[8]: 'c'

内建方法:fromkeys

字典中的key有相同的value值,默认为None

In [56]: dic.fromkeys([1,3,5,7])
Out[56]: {1: None, 3: None, 5: None, 7: None}

In [57]: dic.fromkeys([1,3,5,7],'hello')
Out[57]: {1: 'hello', 3: 'hello', 5: 'hello', 7: 'hello'}

字典的访问

#直接通过key访问
In [4]: dic = {'lixu':'123','mingm':'qwe3','kikio':'ada'}

In [6]: dic['mingm']
Out[6]: 'qwe3'

字典值的访问

循环遍历访问

In [1]: dic = {'name':'cici','age':4,'feel':'happy'}

In [2]: for key in dic:
   ...:     print dic[key]
   ...:     
happy
4
cici

字典的添加

dic[key] = value
由于字典是无序的,所以不能按照位置参数添加

In [4]: dic
Out[4]: {'age': 4, 'feel': 'happy', 'name': 'cici'}

In [5]: dic['gift']='doll'

In [6]: dic
Out[6]: {'age': 4, 'feel': 'happy', 'gift': 'doll', 'name': 'cici'}

字典的操作

In [11]: dic
Out[11]: {'age': 4, 'feel': 'happy', 'gift': 'doll', 'name': 'cici'}

In [12]: dic.
dic.clear       dic.has_key     dic.itervalues  dic.setdefault  dic.viewkeys
dic.copy        dic.items       dic.keys        dic.update      dic.viewvalues
dic.fromkeys    dic.iteritems   dic.pop         dic.values      
dic.get         dic.iterkeys    dic.popitem     dic.viewitems   

常用方法

dic.get():如果key存在于字典中,返回对应value值
dic.keys():返回字典的所有key值
dic.has_keys():字典中是否存在某个key值

In [23]: dic = {'name':'cici','age':4,'feel':'happy'}

In [24]: dic.get('name')
Out[24]: 'cici'

In [25]: dic.keys()
Out[25]: ['feel', 'age', 'name']

In [26]: dic.has_key(ss)
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-26-43113b712ec1> in <module>()
----> 1 dic.has_key(ss)

NameError: name 'ss' is not defined

In [27]: dic.has_key('name')
Out[27]: True

删除

dic.pop(key)
根据key值删除字典的元素;

In [13]: dic
Out[13]: {'age': 4, 'feel': 'happy', 'gift': 'doll', 'name': 'cici'}

In [14]: dic.pop('gift')
Out[14]: 'doll'

In [15]: dic
Out[15]: {'age': 4, 'feel': 'happy', 'name': 'cici'}

dic.popitem()
随机删除字典元素,返回(key,value)

In [15]: dic
Out[15]: {'age': 4, 'feel': 'happy', 'name': 'cici'}

In [16]: dic.popitem()
Out[16]: ('feel', 'happy')

In [17]: dic.popitem()
Out[17]: ('age', 4)

In [18]: dic
Out[18]: {'name': 'cici'}

dic.clear()
删除字典中的所有元素

In [18]: dic
Out[18]: {'name': 'cici'}

In [19]: dic.clear()

In [20]: dic
Out[20]: {}

del dic
删除字典本身

In [20]: dic
Out[20]: {}

In [21]: del(dic)

In [22]: dic
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-22-1b445b6ea935> in <module>()
----> 1 dic

NameError: name 'dic' is not defined
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值