在Python 字典中一键对应多个值的实例

yipeiwu_com6年前Python基础

如下所示:

#encoding=utf-8
 
print '中国'
 
#字典的一键多值
 
print'方案一 list作为dict的值 值允许重复'
 
d1={}
key=1
value=2
d1.setdefault(key,[]).append(value)
value=2
d1.setdefault(key,[]).append(value)
 
print d1
 
#获取值
print '方案一 获取值'
print list(d1[key])
 
print '方案一 删除值,会留下一个空列表'
d1[key].remove(value)
d1[key].remove(value)
print d1
 
print '方案一 检查是否还有一个值'
print d1.get(key,[])
 
print '方案二 使用子字典作为dict的值 值不允许重复'
 
d1={}
key=1
keyin=2
value=11
d1.setdefault(key,{})[keyin]=value
keyin=2
value=22
d1.setdefault(key,{})[keyin]=value
keyin=3
value=33
d1.setdefault(key,{})[keyin]=value
 
print d1
 
print '方案二 获取值'
print list(d1[key])
 
print '方案二 删除值,会留下一个空列表'
del d1[key][keyin]
keyin=2
del d1[key][keyin]
print d1
 
print '方案二 检查是否还有一个值'
print d1.get(key,())
 
print '方案三 使用set作为dict的值 值不允许重复'
d1={}
key=1
value=2
d1.setdefault(key,set()).add(value)
value=2
d1.setdefault(key,set()).add(value)
value=3
d1.setdefault(key,set()).add(value)
 
print d1
 
print '方案三 获取值'
print list(d1[key])
 
print '方案三 删除值,会留下一个空列表'
d1[key].remove(value)
value=2
d1[key].remove(value)
print d1
 
print '方案三 检查是否还有一个值'
print d1.get(key,())

打印结果:

中国

方案一 list作为dict的值 值允许重复

{1: [2, 2]}
获取值
[2, 2]
删除值,会留下一个空列表
{1: []}
检查是否还有一个值
[]

方案二 使用子字典作为dict的值 值不允许重复

{1: {2: 22, 3: 33}}
获取值
[2, 3]
删除值,会留下一个空列表
{1: {}}
检查是否还有一个值
{}

方案三 使用set作为dict的值 值不允许重复

{1: set([2, 3])}
获取值
[2, 3]
删除值,会留下一个空列表
{1: set([])}
检查是否还有一个值
set([])

以上这篇在Python 字典中一键对应多个值的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Python标准异常和异常处理详解

python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误。你可以使用该功能来调试python程序。 1.异常处理: 本站Python教程会具体介绍。 2.断言(...

python 获取网页编码方式实现代码

python 获取网页编码方式实现代码 <span style="font-family: Arial, Helvetica, sans-serif; background-c...

python+tifffile之tiff文件读写方式

背景 使用python操作一批同样分辨率的图片,合并为tiff格式的文件。 由于opencv主要用于读取单帧的tiff文件,对多帧的文件支持并不好。 通过搜索发现了两个比较有用的包:Ti...

对python中数组的del,remove,pop区别详解

以a=[1,2,3] 为例,似乎使用del, remove, pop一个元素2 之后 a都是为 [1,3], 如下: >>> a=[1,2,3] >>...

使用python实现ftp的文件读写方法

ftp登陆连接 from ftplib import FTP #加载ftp模块 ftp=FTP() #设置变量 ftp.set_debuglevel...