python字典多键值及重复键值的使用方法(详解) | 您所在的位置:网站首页 › Python字典setdefault › python字典多键值及重复键值的使用方法(详解) |
在Python中使用字典,格式如下: dict={ key1:value1 , key2;value2 ...}在实际访问字典值时的使用格式如下: dict[key]多键值字典的多键值形式如下: dict={(ke11,key12):value ,(key21,key22):value ...}在实际访问字典里的值时的具体形式如下所示(以第一个键为例): dict[key11,key12]或者是: dict[(key11,key12)]以下是实际例子: 多值在一个键值对应多个值时,格式: dict={key1:(value1,value2 ..), key2:(value1,value2 ...) ...}访问字典里的值的格式如下: dict[key]或者 dict[key][index]循环赋值(重点) 语法结构如以下实例所示 通过以上的说明,可以知道在字典的定义中, 冒号( : ) 号前后是分别是一个整体,即使用小括号()将冒号前后部分分别包括起来,在访问字典值时,最好把键放在小括号内成为一个整体。 键值相同的多个键值对即在字典中,有至少两个成员的键相同,但是键对应的值是不同的,格式如下: dict={ key1: value1 key1: vaklue2, ... }在这种形式形式中在后来赋给键的值将成为键的真实值。 格式 dict={ key1:(key11:value,key12:value) , key2:(key21:value,key22:value) }访问字典值得格式(以第一个键为例): dict[key1][key11]实际例子如下所示: #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([]) |
CopyRight 2018-2019 实验室设备网 版权所有 |