python dict的一些简单用法

时间:2023-01-30 08:32:06

我以为我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排序就好了。