python dict的一些简单用法

我以为我dict用的很熟了,但是真正再去用的时候发现还是底子太薄,太多地方容易出错了;

  • dict的创建:
d = dict()
# or 更简单
d = {}

这样创建了一个新的dict,不包含任何key,value

  • dict的插入和赋值:
    如果我不知道一个dict对象里是否有dict[key]的话,我要先判断一下:
    has_key()返回boolean变量
if d.han_key('key'):
    #do something...

一个例子:
比如说我有一个list,里面有重复的元素,我要统计所有元素出现的次数

list = [1,2,2,3,4,2,3,3]
d = dict()
for element in list:
    if d.has_key(element):
        d[element] += 1
    else:
        d[element] = 1
  • dict的遍历:
    一种简单的方法吧,Python2.7是这么用,记住一种就好
for k,v in dict.iteritems():
    print '%s:%s' % (k, v)

其中iteritems()返回了一个dictionary-itemiterator object

相比items()返回的就是一个list, list的每个元素为一个tuple, 如:

[('a', 1), ('b', 2)]
  • dict的排序:
    排序,其实是将dict里的元素都转化到一个list, list的每个元素为一个tuple;然后对这个list进行操作。

我仔细想了一下,dict排序有意义吗?我意思是我致力于去实现我把所有的元素排完序再放回去是有序的,这个本身是不现实的,因为dict的创建和维护并不是按照连续的内存,而是哈希的。
所以我们只能得到一个有序的list,无法得到一个有序的dict
所以如果知道排序的思想,用items()抽出来,再对list排序就好了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值