Python之数据结构-----字典

1 定义字典

字典(dict)类型就和它的名字一样,可以向查字典一样去查找。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print(english,type(english))

执行结果:

 字典的元素是成对出现的,每个元素都是由“:”和键值对(“:”左边的称为键或者Key,“:”右边的称为值或者Value)构成,元素与元素之间用“,”分割,整个字典用花括号“{ }”包围。字典的键必须是唯一的、不重复的,如果是空字典(一个元素都没有),则可以直接用“{ }”表示。

empty={}
print(empty,type(empty))

执行结果:

2 使用字典

在python中,字典其实就是一组键值对。字典元素是成对出现的,每个元素必须要有键和对应的值。访问字典和查字典一样,需要用键去“查找”值。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print("world",english["world"])

执行结果:

这种方法只能获取已存在的键值对,如果尝试访问不存在的键,python会报错。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print("city",english["city"])

执行结果:

Python之数据结构-----字典_第1张图片

修改字典:

english={
    "we":"我们",
    "world":"城市",
    "company":"公司",
}
print(english)
english["world"]="世界"
print(english)

执行结果:

字典新增 和修改元素的语法是一样的。

english={}
print(english)
english["world"]="世界"
print(english)

执行结果:

字典中的元素自然也能被删除。

english={
    "we":"我们",
    "world":"城市",
    "company":"公司",
}
print(english)
del english["world"]
print(english)

执行结果:

 

del关键字可以删除字典的元素。

3 字典的其他操作

(1)clear方法可以用于清空字典的所有元素,使字典变为空字典,不需要一个一个的删除元素。

english={
    "we":"我们",
    "city":"城市",
    "company":"公司",
}
print(english)
english.clear()
print(english)

执行结果:

(2)使用copy方法返回一个具有相同键值对的新字典。

english1={
    "we":"我们",
    "city":"城市",
    "company":"公司",
}

english2=english1
english3=english1.copy()

print("english1",english1)
print("english2",english2)
print("english3",english3)

print("----------")
print("change english2")
english2["city"]="市"

print("english1",english1)
print("english2",english2)
print("english3",english3)

print("----------")
print("change english3")
english3["school"]="学校"

print("english1",english1)
print("english2",english2)
print("english3",english3)

执行结果: 

Python之数据结构-----字典_第2张图片

使用copy方法对获取到的字典做修改,原始的字典不受影响。

注意:copy进行的是浅拷贝,如果字典的元素值也是字典,那么copy只会影响最外层字典,元素内部还是引用。使用深拷贝解决此类问题。

(3)fromkeys方法用于创建一个新字典,用序列中的元素作为字典的键,第二个参数为字典所有参数对应的初始值。

seq = ("name","age","class")
student1 = dict.fromkeys(seq)
print("不指定默认值",student1)

student2=dict.fromkeys(seq,15)
print("指定默认值",student2)

执行结果:

(4)使用get方法返回键对应的值,如果字典不存在对应的键则返回默认值。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print("world",english.get("world"))
print("city",english.get("city"))
print("city",english.get("city","未知"))

执行结果:Python之数据结构-----字典_第3张图片

 get方法不会因为键值对不存在而像使用索引获取键值对那样输出错误信息。get方法如果获取不到,则可以使用我们指定的默认值作为获取的变量值。

(5)使用keys方法返回一个列表,里面包含了字典的所有键。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print(english.keys())

执行结果:

keys方法常常用来判断一个键是否存在于字典中,可以和“in”操作符组合使用。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print("是否存在world?","world" in english.keys())
print("是否存在city?","city" in english.keys())

执行结果:

 (6)使用values方法返回一个列表,里面包含了字典的所有值。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print("english中的值:",english.values())

执行结果:

(7)使用items方法返回一个列表,里面包含了所有键的列表和所有值的列表(准确地说items返回的并不是一个list类型,只是类似list)。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

print(english.items())

执行结果:

 

由于字典不能直接运用于for循环中,我们可以使用items方法来遍历字典。

english={
    "we":"我们",
    "world":"世界",
    "company":"公司",
}

for k,v in english.items():
    print(k,">=","v")

执行结果:

 

你可能感兴趣的:(python)