Python 字典类型及相关操作

字典是python中唯一的映射类型,采用键值对(key-value)的形式存储数据。python对key进行哈希函数运算,根据计算的结果决定value的存储地址,所以字典是无序存储的,且key必须是可哈希的。可哈希表示key必须是不可变类型,如:数字、字符串、元组。

字典(dictionary)是除列表意外python之中最灵活的内置数据结构类型。列表是有序的对象结合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。

创建字典:     

1
2
3
4
dic1 = { 'name' : 'alex' , 'age' : 36 , 'sex' : 'male' }
dic2 = dict ((( 'name' , 'alex' ),))
print (dic1)
print (dic2)

对应操作:

1 增
1
2
3
4
5
6
7
8
9
10
dic3 = {}
 
dic3[ 'name' ] = 'alex'
dic3[ 'age' ] = 18
print (dic3) #{'name': 'alex', 'age': 18}
 
a = dic3.setdefault( 'name' , 'yuan' )
b = dic3.setdefault( 'ages' , 22 )
print (a,b)
print (dic3)
2 查
1
2
3
4
5
6
7
8
9
10
11
12
13
14
dic3 = { 'name' 'alex' 'age' 18 }
 
# print(dic3['name'])
# print(dic3['names'])
#
# print(dic3.get('age',False))
# print(dic3.get('ages',False))
 
print (dic3.items())
print (dic3.keys())
print (dic3.values())
 
print ( 'name'  in  dic3) # py2:  dic3.has_key('name')
print ( list (dic3.values()))
3 改
1
2
3
4
5
6
dic3 = { 'name' 'alex' 'age' 18 }
 
dic3[ 'name' ] = 'alvin'
dic4 = { 'sex' : 'male' , 'hobby' : 'girl' , 'age' : 36 }
dic3.update(dic4)
print (dic3)
4 删
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
dic4 = { 'name' 'alex' 'age' 18 , 'class' : 1 }
 
 
# dic4.clear()
# print(dic4)
del  dic4[ 'name' ]
print (dic4)
 
a = dic4.popitem()
print (a,dic4)
 
# print(dic4.pop('age'))
# print(dic4)
 
# del dic4
# print(dic4)
5 其他操作以及涉及到的方法

5.1 dict.fromkeys

1
2
3
4
5
6
7
8
9
10
d1 = dict .fromkeys([ 'host1' , 'host2' , 'host3' ], 'Mac' )
print (d1)
 
d1[ 'host1' ] = 'xiaomi'
print (d1)
#######
d2 = dict .fromkeys([ 'host1' , 'host2' , 'host3' ],[ 'Mac' , 'huawei' ])
print (d2)
d2[ 'host1' ][ 0 ] = 'xiaomi'
print (d2)

5.2  d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典

5.3  字典的嵌套

  View Code

5.4 sorted(dict) : 返回一个有序的包含字典所有key的列表

1
2
dic = { 5 : '555' , 2 : '222' , 4 : '444' }
print ( sorted (dic)) 

5.5 字典的遍历  

1
2
3
4
5
6
7
8
9
dic5 = { 'name' 'alex' 'age' 18 }
 
for  in  dic5:
     print (i,dic5[i])
 
for  items  in  dic5.items():
     print (items)
for  keys,values  in  dic5.items():
     print (keys,values)

  

 还用我们上面的例子,存取这个班学生的信息,我们如果通过字典来完成,那:

1
2
3
4
dic = { 'zhangsan' :{ 'age' : 23 , 'sex' : 'male' },
      '李四' :{ 'age' : 33 , 'sex' : 'male' },
      'wangwu' :{ 'age' : 27 , 'sex' : 'women' }  
      }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值