Chinaunix首页 | 论坛 | 博客
  • 博客访问: 268764
  • 博文数量: 45
  • 博客积分: 930
  • 博客等级: 准尉
  • 技术积分: 553
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-22 17:53
文章分类

全部博文(45)

文章存档

2013年(5)

2012年(40)

分类: Python/Ruby

2012-05-03 16:43:42

今天工作的时候要处理这样一个问题:查找一些英文词在哪些小句中出现了,当然是用python来实现,当然是用字典,但是怎么让一个key对应一个 类型为列表的value,直接用列表的append()是不行的,比如dic[key].append(value),因为解释器并不知道 dic[key]的类型,当时赶时间,用了一个折衷的方案,就是先用value连成一个str,最后用str.split()作一个转换,生成一个列表.

回家看了python cookbook,上面正好有一个recipe讲到如何处理这样的问题,好了,揭晓答案吧!

1)value中允许有重复项.

dic = {}

dic.setdefault(key,[]).append(value)

如:

d1.setdefault('bob_hu',[]).append(1)

d1.setdefault('bob_hu',[]).append(2)

print d1['bob_hu'] # [1,2]

(2)value中无重复项.

dic = {}

dic.setdefault(key,{})[value] = 1

如:

d1.setdefault('bob',{})['f'] = 1

d1.setdefault('bob',{})['h'] = 1

d1.setdefault('bob',{})['f'] = 1

print d1['bob'] #{'h': 1, 'f': 1}

阅读(2139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~