Dict
用 dict 表示“名字”-“成绩”的查找表如下:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
我们把名字称为key,对应的成绩称为value,dict就是通过 key 来查找 value。
花括号 {} 表示这是一个dict,然后按照 key: value, 写出来即可。最后一个 key: value 的逗号可以省略。
由于dict也是集合,len() 函数可以计算任意集合的大小:
>>> len(d) 3
可以简单地使用 d[key] 的形式来查找对应的 value,这和 list 很像,不同之处是,list 必须使用索引返回对应的元素,而dict使用key。
注意: 通过 key 访问 dict 的value,只要 key 存在,dict就返回对应的value。如果key不存在,会直接报错:KeyError。
要避免 KeyError 发生,有两个办法:
一是先判断一下 key 是否存在,用 in 操作符:
if 'Paul' in d: print d['Paul']
如果 'Paul' 不存在,if语句判断为False,自然不会执行 print d['Paul'] ,从而避免了错误。
二是使用dict本身提供的一个 get 方法,在Key不存在的时候,返回None:
>>> print d.get('Bart') 59 >>> print d.get('Paul') None
DICT 的特点:
dict的第一个特点是查找速度快,无论dict有10个元素还是10万个元素,查找速度都一样。而list的查找速度随着元素增加而逐渐下降。
不过dict的查找速度快不是没有代价的,dict的缺点是占用内存大,还会浪费很多内容,list正好相反,占用内存小,但是查找速度慢。
dict的第二个特点就是存储的key-value序对是没有顺序的!
dict的第三个特点是作为 key 的元素必须不可变,Python的基本类型如字符串、整数、浮点数都是不可变的,都可以作为 key。但是list是可变的,就不能作为 key。
修改Dict
dict是可变的,也就是说,我们可以随时往dict中添加新的 key-value。比如已有dict:
d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 }
要把新同学'Paul'的成绩 72 加进去,用赋值语句:
>>> d['Paul'] = 72
再看看dict的内容:
>>> print d {'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 59}
如果 key 已经存在,则赋值会用新的 value 替换掉原来的 value:
>>> d['Bart'] = 60 >>> print d {'Lisa': 85, 'Paul': 72, 'Adam': 95, 'Bart': 60}
遍历Dict
直接使用for循环可以遍历 dict 的 key:
>>> d = { 'Adam': 95, 'Lisa': 85, 'Bart': 59 } >>> for key in d: ... print key
Set
dict的作用是建立一组 key 和一组 value 的映射关系,dict的key是不能重复的。
set 持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。
创建 set 的方式是调用 set() 并传入一个 list,list的元素将作为set的元素:
>>> s = set(['A', 'B', 'C'])
可以查看 set 的内容:
>>> print s set(['A', 'C', 'B'])
请注意,上述打印的形式类似 list, 但它不是 list,仔细看还可以发现,打印的顺序和原始 list的顺序有可能是不同的,因为set内部存储的元素是无序的。
因为set不能包含重复的元素,所以,当我们传入包含重复元素的 list 会怎么样呢?
>>> s = set(['A', 'B', 'C', 'C']) >>> print s set(['A', 'C', 'B']) >>> len(s) 3
结果显示,set会自动去掉重复的元素
由于set存储的是无序集合,所以我们没法通过索引来访问。
访问 set中的某个元素实际上就是判断一个元素是否在set中。
Bart是该班的同学吗?
>>> 'Bart' in s True
Set的特点:
set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
最后,set存储的元素也是没有顺序的。
遍历Set:
直接使用 for 循环可以遍历 set 的元素:
>>> s = set(['Adam', 'Lisa', 'Bart']) >>> for name in s: ... print name ... Lisa Adam Bart
更新Set:
由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
一是把新的元素添加到set中,二是把已有元素从set中删除。
添加元素时,用set的add()方法:
>>> s = set([1, 2, 3]) >>> s.add(4) >>> print s set([1, 2, 3, 4])
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
>>> s = set([1, 2, 3]) >>> s.add(3) >>> print s set([1, 2, 3])
删除set中的元素时,用set的remove()方法:
>>> s = set([1, 2, 3, 4]) >>> s.remove(4) >>> print s set([1, 2, 3])
如果删除的元素不存在set中,remove()会报错:
>>> s = set([1, 2, 3]) >>> s.remove(4) Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 4
所以用add()可以直接添加,而remove()前需要判断。
相关推荐
在学习Python入门的过程中,我们会遇到一系列的概念和步骤。从Python的安装到模块导入原理,再到变量和数据类型的理解,这些知识点构成了Python编程的基础。接下来,我将详细解释这些内容。 首先,安装Python是学习...
4. 数据结构:详细介绍Python内置的基本数据结构,如列表(list)、元组(tuple)、字典(dict)和集合(set),以及如何操作和利用这些数据结构。 5. 控制流:解释如何使用条件语句(if-elif-else)和循环语句...
Python还支持多种数据结构,如列表(list)、元组(tuple)、集合(set)和字典(dict)。列表是可变的,元组则是不可变的,而字典则通过键值对存储数据,提供了快速的查找功能。 控制流是任何编程语言的核心,Python中的if...
《编程小白的第一本Python入门书》是一本专为编程初学者量身打造的教材,尤其适合那些完全没有编程背景的读者。本书旨在引领初学者跨入编程世界的大门,特别是学习Python这种近年来非常热门的编程语言。下面将对...
此外,Python还有列表(list)、元组(tuple)、集合(set)和字典(dict)等复合数据类型,它们允许你存储和操作多个值。 2. **变量与赋值**: 在Python中,你可以轻松创建变量并为其分配值。变量名遵循一定的命名...
在Python入门学习中,掌握高级数据类型是至关重要的一步。本篇主要关注List、Tuple、Dict和Set这四种基本的数据结构。 首先,我们来看List。List是Python中最常用的一种有序集合,它允许存储任意类型的对象,并且...
此外,还有列表(list)、元组(tuple)、字典(dict)和集合(set)等复合数据结构。 2. **控制流**:掌握条件语句(if-else)、循环(for、while)以及异常处理(try-except-finally)是编程基础。 3. **函数**...
此外,还会介绍列表(list)、元组(tuple)、集合(set)和字典(dict),这些都是Python中表示“组”的主要结构。 第四章深入探讨列表和元组,它们在Python中用于存储和操作有序数据。你将学习如何创建、修改和访问这些...
在Python编程语言的世界里,"Python入门案例代码"是一份非常适合初学者的资源,它包含了大量帮助理解基础概念和语法的实例。这份压缩包可能是博主为了教学目的精心编排的一系列教程,旨在引导新手逐步掌握Python的...
【Python入门速查表】是为初学者设计的一份实用指南,旨在帮助快速掌握Python编程基础知识。这份速查表通常包含各种语法结构、内置函数、常用模块和编程技巧的概览,是学习和工作中便捷的参考资料。以下是根据速查表...
此外,Python还有列表(list)、元组(tuple)、集合(set)和字典(dict)等复合数据类型,它们提供了灵活的数据组织方式。 2. **控制结构**:Python的控制结构包括条件语句(if-else)用于条件判断,循环结构...
作为“python入门基础语法”的主题,我们将深入探讨Python的基础知识,包括变量、数据类型、流程控制语句以及如何通过循环和判断来编写一个简单的猜拳游戏。 首先,Python中的变量允许我们存储和操作数据。你可以将...
- 变量和数据类型:Python中的变量无需声明类型,数据类型包括整型、浮点型、字符串、布尔型等。 - 控制结构:包括if条件判断语句、for和while循环语句等。 - 函数定义:函数是组织好的、可重复使用的、用来实现单一...
此外,教程还可能涵盖字典(dict)和集合(set)等复合数据结构,以及它们在存储和检索数据方面的优势。 控制流程是编程的关键,因此教程会包含条件语句(if-elif-else)、循环(for和while)以及异常处理(try-...
Python中的基本数据类型包括整数(int)、浮点数(float)、字符串(str)、布尔值(bool)、列表(list)、元组(tuple)、字典(dict)和集合(set)等。 2. 变量与常量 变量:在Python中,变量
1. **变量和数据类型**:在Python中,你可以创建变量存储各种数据,如整数、浮点数、字符串等。例如: ```python age = 25 name = "Alice" ``` 2. **运算符**:Python支持算术、比较和逻辑运算符。例如: ```...
5. 集合数据结构:列表(list)、元组(tuple)、字典(dict)和集合(set)是Python的四大核心数据结构。它们各自具有独特的优势,熟练运用可以高效地处理数据。 6. 文件操作:学习如何打开、读取、写入和关闭文件...
【Python入门教程】 Python是一种广泛使用的高级编程语言,以其简洁明了的语法和强大的功能深受程序员喜爱。本文档提供了一张Python入门神图,旨在帮助初学者在短时间内快速掌握Python的基本概念。以下是对其中关键...
在这个“最基础的Python入门课件和代码-整理”资料中,你将找到一系列关于Python编程的基础知识,帮助你开启编程之旅。 1. **变量与数据类型**:Python中的基本数据类型包括整型(int)、浮点型(float)、字符串...