初识字典 | Python从入门到精通:进阶篇之十三

简介: 本节我们将会对字典做一个简单的介绍以及如何去创建字典,并通过键获取值。

可变对象 | Python从入门到精通:进阶篇之十二

字典(dict)

字典属于一种新的数据结构,称为映射(mapping),其作用和列表类似,都是用来存储对象的容器。但列表又与字典的不同。

  • 列表存储数据的性能很好,但是查询数据的性能很差。列表是通过索引来操作元素。
  • 在字典中每一个元素都有一个唯一的名字,通过这个唯一的名字可以快速的查找到指定的元素(名字类似于列表的索引,但是更方便记忆)。
  • 在查询元素时,字典的效率是非常快的。

字典的一些术语
在字典中也是可以保存多个对象,然后每个对象都会有一个唯一的名字。

  • 这个唯一的名字,我们称其为键(key),通过key可以快速的查询value。
  • 这个对象,我们称其为值(value)。
  • 所以字典,我们也称为键值对(key-value)结构。
  • 每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item)。

现在来进行一下操作:

#字典
#使用 {} 来创建字典
d = {} #创建了一个空字典
print(d , type(d))

执行结果:

image.png

向字典里添加项:

#字典
#使用 {} 来创建字典
d = {} #创建了一个空字典

#创建一个包含有数据的字典
#语法:
#{key:value,key:value,key:value}
d = {'name':'孙悟空'}

print(d , type(d))

执行结果:

image.png

向字典中添加多个项:

#字典
#使用 {} 来创建字典
d = {}    #创建了一个空字典

#创建一个包含有数据的字典
#语法:
#{key:value,key:value,key:value}

d = {'name':'孙悟空' , 'age':18 , 'gender':'男'}

print(d , type(d))

执行结果:

image.png

字典的值与键:

#字典
#使用 {} 来创建字典
d = {} #创建了一个空字典

#创建一个包含有数据的字典
#语法:
#{key:value,key:value,key:value}
#字典的值可以是任意对象
#字典的键可以是任意的不可变对象(int、str、bool、tuple ...)
#字典的键是不能重复的,如果出现重复的后边的会替换到前边的
d = {'name':'孙悟空' , 'age':18 , 'gender':'男' , 'name':'sunwukong'}

print(d , type(d))

执行结果:

image.png

我们一般为了清楚明了,这样表示字典。

d = {
'name':'孙悟空' , 
'age':18 , 
'gender':'男' , 
'name':'sunwukong'
}

下面来看一下如何获取字典中的值:

#字典
#使用 {} 来创建字典
d = {} #创建了一个空字典

#创建一个包含有数据的字典
#语法:
#{key:value,key:value,key:value}
#字典的值可以是任意对象
#字典的键可以是任意的不可变对象(int、str、bool、tuple ...),但是一般我们都会使用str
#字典的键是不能重复的,如果出现重复的后边的会替换到前边的
#d = {'name':'孙悟空' , 'age':18 , 'gender':'男' , 'name':'sunwukong'}
d = {
'name':'孙悟空' , 
'age':18 , 
'gender':'男' , 
'name':'sunwukong'
}

#print(d , type(d))

#需要根据键来获取值
print(d['name'],d['age'],d['gender'])

执行结果:

image.png

这与列表的区别在于,字典通过名字来获取,列表通过索引来获取。字典查询性能好则是因为列表查询的索引是无意义的,而字典的查询名字则是有意义的,例如:name,gender...

如果使用了字典中不存在的键将会报错。

#字典
#使用 {} 来创建字典
d = {} #创建了一个空字典

#创建一个包含有数据的字典
#语法:
#{key:value,key:value,key:value}
#字典的值可以是任意对象
#字典的键可以是任意的不可变对象(int、str、bool、tuple ...),但是一般我们都会使用str
#字典的键是不能重复的,如果出现重复的后边的会替换到前边的
#d = {'name':'孙悟空' , 'age':18 , 'gender':'男' , 'name':'sunwukong'}
d = {
'name':'孙悟空' , 
'age':18 , 
'gender':'男' , 
'name':'sunwukong'
}

#print(d , type(d))

#需要根据键来获取值
#print(d['name'],d['age'],d['gender'])

#如果使用了字典中不存在的键,会报错
print(d['hello']) 

执行结果:

image.png

之后我们将进行字典的操作。

配套视频课程,点击这里查看

获取更多资源请订阅Python学习站

相关文章
|
9天前
|
存储 程序员 开发者
Python编程基础:从入门到实践
【10月更文挑战第8天】在本文中,我们将一起探索Python编程的奇妙世界。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供有价值的信息。我们将从Python的基本概念开始,然后逐步深入到更复杂的主题,如数据结构、函数和类。最后,我们将通过一些实际的代码示例来巩固我们的知识。让我们一起开始这段Python编程之旅吧!
|
10天前
|
测试技术 Python
Python中的装饰器:从入门到精通
【10月更文挑战第7天】本文旨在通过浅显易懂的方式,向读者介绍Python中装饰器的概念、用法和高级应用。我们将从装饰器的定义开始,逐步深入到如何创建和使用装饰器,最后探讨装饰器在实战中的应用。文章将结合代码示例,帮助读者更好地理解和掌握这一强大的工具。
|
6天前
|
Python
【python从入门到精通】-- 第五战:函数大总结
【python从入门到精通】-- 第五战:函数大总结
27 0
|
11天前
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
64 0
|
1天前
|
存储 算法 Python
【10月更文挑战第16天】「Mac上学Python 27」小学奥数篇13 - 动态规划入门
本篇将通过 Python 和 Cangjie 双语介绍动态规划的基本概念,并解决一个经典问题:斐波那契数列。学生将学习如何使用动态规划优化递归计算,并掌握编程中的重要算法思想。
32 3
|
3天前
|
设计模式 开发者 Python
Python编程中的设计模式:从入门到精通####
【10月更文挑战第14天】 本文旨在为Python开发者提供一个关于设计模式的全面指南,通过深入浅出的方式解析常见的设计模式,帮助读者在实际项目中灵活运用这些模式以提升代码质量和可维护性。文章首先概述了设计模式的基本概念和重要性,接着逐一介绍了几种常用的设计模式,并通过具体的Python代码示例展示了它们的实际应用。无论您是Python初学者还是经验丰富的开发者,都能从本文中获得有价值的见解和实用的技巧。 ####
|
5天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
【10月更文挑战第12天】本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和入门实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型训练和评估等步骤,并提供了代码示例。通过本文,读者可以掌握机器学习的基本流程,并为深入学习打下坚实基础。
11 1
|
7天前
|
机器学习/深度学习 人工智能 算法
机器学习基础:使用Python和Scikit-learn入门
本文介绍了如何使用Python和Scikit-learn进行机器学习的基础知识和实践。首先概述了机器学习的基本概念,包括监督学习、无监督学习和强化学习。接着详细讲解了Python和Scikit-learn的安装、数据处理、模型选择与训练、模型评估及交叉验证等关键步骤。通过本文,初学者可以快速上手并掌握机器学习的基本技能。
32 2
|
6天前
|
自然语言处理 Python
【python从入门到精通】-- 第三战:输入输出 运算符
【python从入门到精通】-- 第三战:输入输出 运算符
35 0
【python从入门到精通】-- 第三战:输入输出 运算符
|
10天前
|
数据可视化 开发者 Python
使用Python进行数据可视化:从入门到精通
【10月更文挑战第7天】本文将引导您通过Python的可视化库,如Matplotlib和Seaborn,来探索和展示数据。我们将通过实际代码示例,学习如何创建各种图表,包括条形图、散点图和直方图等,并讨论如何优化这些图表以更好地传达信息。无论您是初学者还是有一定基础的开发者,这篇文章都能帮助您提高数据可视化技能。