python字典的简单操作(修改、删除、嵌套、遍历、复制)

余生长醉 提交于 2020-03-16 17:25:46

一、Python 字典(Dictionary)

python字典的简单操作(修改、删除、嵌套、遍历、复制)

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

字典的每个键值 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)
以上实例输出结果:
# 原来的数据
{'河北':'石家庄','甘肃':'兰州','四川':'成都'}

# 访问键(河北)
石家庄

# 添加键值对('山西': '太原')
{'河北': '石家庄', '甘肃': '兰州', '四川': '成都', '山西': '太原'}

# 修改字典的值(石家庄改为邢台)
{'河北': '邢台', '甘肃': '兰州', '四川': '成都', '山西': '太原'}

# 删除字典的键-值对(四川)
{'河北': '邢台', '甘肃': '兰州', '山西': '太原'}

二、遍历字典

python字典的简单操作(修改、删除、嵌套、遍历、复制)

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')])

三、字典与列表的嵌套

python字典的简单操作(修改、删除、嵌套、遍历、复制)

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
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!