python解决字典中的值是列表问题的方法

yipeiwu_com6年前Python基础

问题:查找一些英文词在哪些小句中出现了,当然是用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}

相关文章

Python入门篇之字典

字典由多个键及与其对应的值构成的对组成(把键值对成为项),每个键和它的值之间用冒号(:)隔开,项之间用逗号(,)隔开,而整个字典由一对大括号括起来。空字典由两个大括号组成:{} dict...

Python列表删除的三种方法代码分享

1、使用del语句删除元素 >>> i1 = ["a",'b','c','d'] >>> del i1[0] >>> pri...

浅析Python多线程下的变量问题

在多线程环境下,每个线程都有自己的数据。一个线程使用自己的局部变量比使用全局变量好,因为局部变量只有线程自己能看见,不会影响其他线程,而全局变量的修改必须加锁。 但是局部变量也有问题,就...

实例讲解Python中浮点型的基本内容

1.浮点数的介绍 float(浮点型)是Python基本数据类型中的一种,Python的浮点数类似数学中的小数和C语言中的double类型; 2.浮点型的运算 浮点数和整数在计算机内部存...

Python访问MySQL封装的常用类实例

本文实例讲述了Python访问MySQL封装的常用类。分享给大家供大家参考。具体如下: python访问mysql比较简单,下面整理的就是一个很简单的Python访问MySQL数据库类。...