8-python学习之数据类型-字典(dict)


前言

字典(Dictionary)

字典是一个无序、可变和有索引的集合。在 Python 中,字典用花括号编写,拥有键和值

创建并打印字典:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
print(thisdict) # {'brand': 'Porsche', 'model': '911', 'year': 1963}

一、字典的增删改查

添加项目

通过使用新的索引键并为其赋值,可以将项目添加到字典中:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["color"] = "red"
print(thisdict)

删除项目

有几种方法可以从字典中删除项目:

pop() 方法删除具有指定键名的项:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.pop("model")
print(thisdict)

popitem() 方法删除最后插入的项目(在 3.7 之前的版本中,删除随机项目):

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.popitem()
print(thisdict)

del 关键字删除具有指定键名的项目:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict["model"]
print(thisdict)

del 关键字也可以完全删除字典:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
del thisdict

print(thisdict) #this 会导致错误,因为 "thisdict" 不再存在。

clear() 关键字清空字典:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict.clear()
print(thisdict)

访问项目

我们可以通过在方括号内引用其键名来访问字典的项目:

获取 “model” 键的值:

x = thisdict["model"] # 911

注意:还有一个名为 get() 的方法会给你相同的结果。
获取 “model” 键的值:

x = thisdict.get("model") # 911

更改值

我们可以通过引用其键名来更改特定项的值:

把 “year” 改为 2019:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
thisdict["year"] = 2019

遍历字典

我们可以使用 for 循环遍历字典。

循环遍历字典时,返回值是字典的键,但也有返回值的方法。

逐个打印字典中的所有键名:

for x in thisdict:
  print(x)
  # brand
  # model
  # year

逐个打印字典中的所有值:

for x in thisdict:
  print(thisdict[x])
  # Porsche
  # 911
  # 1963

我们还可以使用 values() 函数返回字典的值:

for x in thisdict.values():
  print(x) 

通过使用 items() 函数遍历键和值:

for x, y in thisdict.items():
  print(x, y)
  # brand Porsche
  # model 911
  # year 1963

检查键是否存在

要确定字典中是否存在指定的键,请使用 in 关键字:

检查字典中是否存在 “model”:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
if "model" in thisdict: # True
  print("Yes, 'model' is one of the keys in the thisdict dictionary")

字典长度

要确定字典有多少项目(键值对),请使用 len() 方法。
打印字典中的项目数:

print(len(thisdict))

复制字典

我们不能通过键入 dict2 = dict1 来复制字典,因为:dict2 只是对 dict1 的引用,而 dict1 中的更改也将自动在 dict2 中进行。

有一些方法可以进行复制,一种方法是使用内建的字典方法 copy()。
使用 copy() 方法来复制字典:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = thisdict.copy()
print(mydict)

制作副本的另一种方法是使用内建方法 dict()

使用 dict() 方法创建字典的副本:

thisdict =	{
  "brand": "Porsche",
  "model": "911",
  "year": 1963
}
mydict = dict(thisdict)
print(mydict)

嵌套字典

词典也可以包含许多词典,这被称为嵌套词典。

创建包含三个字典的字典:

myfamily = {
  "child1" : {
    "name" : "Phoebe Adele",
    "year" : 2002
  },
  "child2" : {
    "name" : "Jennifer Katharine",
    "year" : 1996
  },
  "child3" : {
    "name" : "Rory John",
    "year" : 1999
  }
}

或者,如果我们想嵌套三个已经作为字典存在的字典:
创建三个字典,然后创建一个包含其他三个字典的字典:

child1 = {
  "name" : "Phoebe Adele",
  "year" : 2002
}
child2 = {
  "name" : "Jennifer Katharine",
  "year" : 1996
}
child3 = {
  "name" : "Rory John",
  "year" : 1999
}

myfamily = {
  "child1" : child1,
  "child2" : child2,
  "child3" : child3
}

dict() 构造函数

也可以使用 dict() 构造函数创建新的字典:

thisdict = dict(brand="Porsche", model="911", year=1963)
# 请注意,关键字不是字符串字面量
# 请注意,使用了等号而不是冒号来赋值
print(thisdict)

二、所有的字典方法

可以在字典上使用的内建方法。

clear()			删除字典中的所有元素
copy()			返回字典的副本
fromkeys()		返回拥有指定键和值的字典
get()			返回指定键的值
items()			返回包含每个键值对的元组的列表
keys()			返回包含字典键的列表
pop()			删除拥有指定键的元素
popitem()		删除最后插入的键值对
setdefault()	返回指定键的值。如果该键不存在,则插入具有指定值的键。
update()		使用指定的键值对字典进行更新
values()		返回字典中所有值的列表

总结

到这里python的基本数据结构我们就已经学习完了,下面我们来学习if语句以及while语句,
下篇见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值