python字典多键值及重复键值的使用方法(详解)

本文 Github/javamap 已收录,有Java程序员进阶技术知识地图以及我的系列文章,欢迎大家Star。

在Python中使用字典,格式如下:

1

dict={ key1:value1 , key2;value2 ...}

在实际访问字典值时的使用格式如下:

1

dict[key]

多键值

字典的多键值形式如下:

1

dict={(ke11,key12):value ,(key21,key22):value ...}

在实际访问字典里的值时的具体形式如下所示(以第一个键为例):

1

dict[key11,key12]

或者是:

1

dict[(key11,key12)]

以下是实际例子:

多值

在一个键值对应多个值时,格式:

1

dict={key1:(value1,value2 ..), key2:(value1,value2 ...) ...}

访问字典里的值的格式如下:

1

dict[key]

或者

1

dict[key][index]

循环赋值(重点)

语法结构如以下实例所示

总结:

通过以上的说明,可以知道在字典的定义中, 冒号( : ) 号前后是分别是一个整体,即使用小括号()将冒号前后部分分别包括起来,在访问字典值时,最好把键放在小括号内成为一个整体。

键值相同的多个键值对

即在字典中,有至少两个成员的键相同,但是键对应的值是不同的,格式如下:

1

2

3

dict={ key1: value1

key1: vaklue2,

... }

在这种形式形式中在后来赋给键的值将成为键的真实值。

使用列表、字典作为字典的值

格式

1

2

3

dict={ key1:(key11:value,key12:value) ,

key2:(key21:value,key22:value)

}

访问字典值得格式(以第一个键为例):

1

dict[key1][key11]

实际例子如下所示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

#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([])

 

-- END --

日常求赞:你好技术人,先赞后看养成习惯,你的赞是我前进道路上的动力,对我非常重要。

加油技术人!

简介: 博主从华中科技大学硕士毕业,是一个对技术有追求,对生活有激情的程序员。几年间浪迹于多个一线互联网大厂,具有多年开发实战经验。

微信搜索公众号【爱笑的架构师】,我有技术和故事,等你来。

文章持续更新,在 Github/javamap 中可以看到我归档的系列文章,有面试经验和技术干货,欢迎Star。

  • 25
    点赞
  • 52
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Python 字典是一种无序、可变、可重复的数据类型,用于存储键值对(key-value pairs)。字典中的键必须是不可变类型(如字符串、数字或元组),而值可以是任何类型。 字典的定义方式如下: ``` my_dict = {"key1": "value1", "key2": "value2", "key3": "value3"} ``` 其中,`{}` 表示字典的开始和结束,每个键值对之间用逗号 `,` 分隔,键和值之间用冒号 `:` 分隔。 可以通过键来访问字典中的值,例如: ``` print(my_dict["key2"]) # 输出 "value2" ``` 如果访问不存在的键,则会抛出 `KeyError` 异常。可以使用 `in` 运算符来检查某个键是否存在于字典中,例如: ``` if "key4" in my_dict: print(my_dict["key4"]) else: print("key4 does not exist in the dictionary") ``` 字典提供了一些常用的方法,例如: - `len(my_dict)` 返回字典键值对的数量。 - `my_dict.keys()` 返回字典中所有键的列表。 - `my_dict.values()` 返回字典中所有值的列表。 - `my_dict.items()` 返回字典中所有键值对的列表,每个键值对由一个元组 `(key, value)` 表示。 可以使用 `for` 循环来遍历字典中的键或键值对,例如: ``` # 遍历键 for key in my_dict: print(key) # 遍历值 for value in my_dict.values(): print(value) # 遍历键值对 for key, value in my_dict.items(): print(key, value) ``` 字典是可变类型,可以动态添加、修改和删除键值对。可以使用如下方法来实现: - `my_dict[key] = value` 添加或修改一个键值对。 - `del my_dict[key]` 删除指定的键值对。 - `my_dict.clear()` 删除字典中的所有键值对。 需要注意的是,字典是无序的,因此不支持使用索引访问。如果需要按照某种顺序遍历字典中的键或键值对,可以使用 `sorted()` 函数对键进行排序,例如: ``` # 按照键的字典序排序 for key in sorted(my_dict): print(key, my_dict[key]) ``` 以上是 Python 字典的基本操作,可以帮助我们更好地理解和使用字典
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值