ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Python 字典

2022-07-16 09:32:38  阅读:290  来源: 互联网

标签:Python Porsche thisdict year model 911 字典


9.Python 字典

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

9.1 创建字典

创建并打印字典:

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

运行结果:

{'brand': 'Porsche', 'model': '911', 'year': 1963}

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

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

运行结果:

{'brand': 'Porsche', 'model': '911', 'year': 1963}

9.2 访问项目

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

获取 "model" 键的值:

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

运行结果:

911

还有一个名为 get() 的方法会给你相同的结果:

获取 "model" 键的值:

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

运行结果:

911

9.3 更改值

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

把 "year" 改为 2022:

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

运行结果:

{'brand': 'Porsche', 'model': '911', 'year': 2022}

9.4 遍历字典

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

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

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

for x in thisdict:
  print(x)

运行结果:

brand
model
year

打印字典中的值:

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

运行结果:

Porsche
911
1963

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

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

运行结果:

Porsche
911
1963

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

for x, y in thisdict.items():
  print(x, y)

运行结果:

brand Porsche
model 911
year 1963

9.5 检查键是否存在

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

检查字典中是否存在 "model":

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

9.6 字典长度

要确定字典有多少项目(键值对),请使用 len() 方法。

打印字典中的项目数:

print(len(thisdict))

运行结果:

3

9.7 添加项目

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

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

运行结果:

{'brand': 'Porsche', 'model': '911', 'year': 1963, 'color': 'red'}

9.8 删除项目

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

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

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

运行结果:

{'brand': 'Porsche', 'year': 1963}

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

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

运行结果:

{'brand': 'Porsche', 'model': '911'}

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

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

运行结果:

{'brand': 'Porsche', 'year': 1963}

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

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

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

运行结果:

Traceback (most recent call last):
  File "demo_dictionary_del3.py", line 7, in <module>
    print(thisdict) #this will cause an error because "thisdict" no longer exists.
NameError: name 'thisdict' is not defined

clear() 关键字清空字典:

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

运行结果:

{}

9.9 复制字典

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

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

使用 copy() 方法来复制字典:

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

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

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

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

运行结果:

{'brand': 'Porsche', 'model': '911', 'year': 1963}

9.10 嵌套字典

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

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

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}}

或者,嵌套三个已经作为字典存在的字典:

创建三个字典,然后创建一个包含其他三个字典的字典:

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
}

运行结果:

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

9.11 字典方法

Python 提供一组可以在字典上使用的内建方法。

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

标签:Python,Porsche,thisdict,year,model,911,字典
来源: https://www.cnblogs.com/minqiliang/p/16483422.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有