一、Python 字典(Dictionary)

dict遍历方法 python python遍历dict嵌套_运维

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

键一般是唯一的,如果重复最后的一个键值对会替换前面的,值不需要唯一。

>>>dict = {'a': 1, 'b': 2, 'b': '3'}

>>> dict['b']

'3'

>>> dict

{'a': 1, 'b': '3'}

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

1、例子

# python的数据类型:字典

# 数据类型与变量关联

name = 'bily'

num = 89

key = 88.8

list = [3,4,5,6]

tuple = (6,4,68)

# 字典的例子:键和值

dict = {'name':'老周','age':'29','job':'程序员'}

print(dict)

dict1={1:101,2:102}

print(dict1)

以上实例输出结果:

{'name': '老周', 'age': '29', 'job': '程序员'}

{1: 101, 2: 102}

表和元组直接写入值即可,而字典需要键和值皆有。

2、简单的字典的操作

# 定义一个字典

dict2 = {

'河北':'石家庄',

'甘肃':'兰州',

'四川':'成都'

}

print(dict2)

# 对字典进行访问(取值)==> 值=字典的名称[键]

sjz = dict2['河北']

print(sjz)

# 添加字典的数据(键值对)

dict2['山西']='太原'

print(dict2)

# 修改字典的值

dict2['河北']='邢台'

print(dict2)

# 删除字典的键-值对

del dict2['四川']

print(dict2)

以上实例输出结果:

# 原来的数据

{'河北':'石家庄','甘肃':'兰州','四川':'成都'}

# 访问键(河北)

石家庄

# 添加键值对('山西': '太原')

{'河北': '石家庄', '甘肃': '兰州', '四川': '成都', '山西': '太原'}

# 修改字典的值(石家庄改为邢台)

{'河北': '邢台', '甘肃': '兰州', '四川': '成都', '山西': '太原'}

# 删除字典的键-值对(四川)

{'河北': '邢台', '甘肃': '兰州', '山西': '太原'}

二、遍历字典

dict遍历方法 python python遍历dict嵌套_dict遍历方法 python_02

1、定义一个字典

dict = {'name':'老周','age':'29','job':'程序员'}

# 遍历字典:键值对的集合、健的集合、值的集合

for key,value in dict.items():

print(key+":"+value)

以上实例输出结果:

name:老周

age:29

job:程序员

2、遍历字典常用的方法

print(dict.items())

print(dict.keys())

print(dict.values())

以上实例输出结果:

dict_items([('name', '老周'), ('age', '29'), ('job', '程序员')])

dict_keys(['name', 'age', 'job'])

dict_values(['老周', '29', '程序员'])

3、字典元素的个数

print(len(dict))

以上实例输出结果:

3

4、复制字典

dict1 = {}

dict1 = dict.copy()

print(dict1)

以上实例输出结果:

{'name': '老周', 'age': '29', 'job': '程序员'}

5、将字典的键排序

print(sorted(dict1.keys()))

print(sorted(dict1.values()))

for info in sorted(dict1.keys()):

print(info,end=" ")

print("\n")

for info in sorted(dict1.keys()):

print(value,end=" ")

以上实例输出结果:

['age', 'job', 'name']

['29', '程序员', '老周']

age job name

程序员 程序员 程序员

6、使用函数获取字典值

print(dict1.get('age'))

以上实例输出结果:

29

7、删除字典的方法

# 删除字典

# dicr1.clear()

dict = {'name':'老周','age':'29','job':'程序员'}

print(dict)

# 删除末尾

#print(dict.popitem())

#print(dict)

# 指定删除

print(dict.pop('age'))

print(dict)

以上实例输出结果:

{'name': '老周', 'age': '29', 'job': '程序员'}

29

{'name': '老周', 'job': '程序员'}

8、小练习

(1)编写一个字典,检查给定键是否已经存在于字典中。

dict = {

'name':'xgp',

'ah':'sleep',

'yd':'pb',

}

print(dict)

以上实例输出结果:

{'name': 'xgp', 'ah': 'sleep', 'yd': 'pb'}

(2)编写一个Python程序,把已存在的一个字典添加到一个空字典中。

dict1 = {}

dict1 = dict.copy()

print(dict1)

以上实例输出结果:

{'name': 'xgp', 'ah': 'sleep', 'yd': 'pb'}

(3)编写一个字典,遍历出该字典所有的键、值、键值对。

dict2 = {

'1':'1',

'2':'2',

'3':'3',

'4':'4',

'5':'5'

}

print(dict2.keys())

print(dict2.values())

print(dict2.items())

以上实例输出结果:

dict_keys(['1', '2', '3', '4', '5'])

dict_values(['1', '2', '3', '4', '5'])

dict_items([('1', '1'), ('2', '2'), ('3', '3'), ('4', '4'), ('5', '5')])

三、字典与列表的嵌套

dict遍历方法 python python遍历dict嵌套_键值对_03

1、定义一个字典

dict = {'name':'老周','age':'29','job':'程序员'}

dict1 = {'name':'老周','age':'29'}

dict2 = {'age':'29','job':'程序员'}

print(dict,dict1,dict2)

以上实例输出结果:

{'name':'老周','age':'29','job':'程序员'},{'name':'老周','age':'29'},{'age':'29','job':'程序员'}

2、列表里嵌套字典

list = [dict,dict1,dict2]

print(list)

以上实例输出结果:

[{'name': '老周', 'age': '29', 'job': '程序员'}, {'name': '老周', 'age': '29'}, {'age': '29', 'job': '程序员'}]

{'pet': ['cat', 'dog', 'duck']}

3、字典里嵌套列表

dict3 ={'pet':['cat','dog','duck']}

print(dict3)

以上实例输出结果:

{'pet': ['cat', 'dog', 'duck']}

4、字典里嵌套字典

dict4 = {

'age':{'gir1':'18','boy':'20'},

'job':{'man':'IT','women':'db'}

}

print(dict4)

for key, value in dict4.items():

print('key:'+key,end=" ")

for v in value.items():

print(v)

以上实例输出结果:

{'age': {'gir1': '18', 'boy': '20'}, 'job': {'man': 'IT', 'women': 'db'}}

key:age ('gir1', '18')

('boy', '20')

key:job ('man', 'IT')

('women', 'db')

四、小测试

1、创建两个字典来表示老师,然后将这两个字典存储到一个名为person的列表中。遍历这个列表,将其中每个老师的信息都打印出来。

(1)创建两个字典来表示老师

dict = {

'name':'xgp',

'age':'18',

'job':'编程老师'

}

dict1 = {

'name':'wsd',

'age':'20',

'job':'运维老师'

}

print(str(dict)+str(dict1))

以上实例输出结果:

{'name': 'xgp', 'age': '18', 'job': '编程老师'}{'name': 'wsd', 'age': '20', 'job': '运维老师'}

(2)两个字典存储到一个名为person的列表中

person = [dict,dict1]

print(person)

以上实例输出结果:

[{'name': 'xgp', 'age': '18', 'job': '编程老师'}, {'name': 'wsd', 'age': '20', 'job': '运维老师'}]

(3)遍历这个列表,将其中每个老师的信息都打印出来

for key,value in person[0].items():

print(key+":"+value)

print('\n')

for key,value in person[1].items():

print(key+":"+value)

以上实例输出结果:

name:xgp

age:18

job:编程老师

name:wsd

age:20

job:运维老师

2、创建多个字典,每个字典都使用一种宠物的名字命名;在每个字典中,包含宠物的类型和主人的名字。将这些字典存储在一个名为pets的列表中,再遍历该列表,将宠物的信息都打印出来。

(1)创建多个字典,每个字典都使用一种宠物的名字命名;在每个字典中,包含宠物的类型和主人的名字。

dog = {

'dog':'柯基',

'type':'Optimistic',

'master':'xgp',

}

cat = {

'cat':'加菲猫',

'type':'lively',

'master':'wsd'

}

bird = {

'bird':'鹦鹉',

'type':'free',

'master':'dsw'

}

print(dog)

print(cat)

print(bird)

以上实例输出结果:

{'dog': '柯基', 'type': 'Optimistic', 'master': 'xgp'}

{'cat': '加菲猫', 'type': 'lively', 'master': 'wsd'}

{'bird': '鹦鹉', 'type': 'free', 'master': 'dsw'}

(2)将这些字典存储在一个名为pets的列表中

pets = [dog,cat,bird]

print(pets)

以上实例输出结果:

[{'dog': '柯基', 'type': 'Optimistic', 'master': 'xgp'}, {'cat': '加菲猫', 'type': 'lively', 'master': 'wsd'}, {'bird': '鹦鹉', 'type': 'free', 'master': 'dsw'}]

(3)遍历该列表,将宠物的信息都打印出来

for key,value in pets[0].items():

print(key+":"+value)

print('\n')

for key,value in pets[1].items():

print(key+":"+value)

print('\n')

for key,value in pets[2].items():

print(key+":"+value)

以上实例输出结果:

dog:柯基

type:Optimistic

master:xgp

cat:加菲猫

type:lively

master:wsd

bird:鹦鹉

type:free

master:dsw