一.字典:
1)字典的概念:
在Python中,字典(Dictionary)是一种无序、可变且可迭代的数据结构,用于存储键-值对(key-value pairs)。它也被称为关联数组或哈希表。字典使用大括号 {} 来表示,每个键-值对之间使用冒号 : 分隔,键和值之间使用逗号 , 分隔。
以下是字典的一些特点和概念:
-
键唯一性:字典中的键必须是唯一的,如果同一个键被多次指定,后面的值将覆盖前面的值。
-
可变性:字典是可变的,可以通过添加、删除和修改键值对来改变字典的内容。
-
无序性:字典中的键值对没有固定的顺序,每次遍历字典时,键值对的顺序可能会发生变化。
-
字典方法:Python提供了许多内置的字典方法,用于对字典进行操作,例如添加键值对、删除键值对、获取键值对等。
Python中的字典在有些地方被称为哈希(Hash),有些地方被称为关系数组,其实这些都与字典是同一概念 。
如上图所示的键(key)和值(value)的一对一关系,如1 -> google,2 -> runoob 即为字典的图例。
映射类型区别于序列类型,序列类型以数组的形式存储,通过索引的方式来获取相应位置的值,一般索引值与对应位置存储的数据是毫无关系的。
列表brand,slogn的索引和相对的值是没有任何关系的,但是可以看出,在两个列表之间索引号相同的元素是有关系的,上述索引的方法确实可以实现,但用起来比较别扭,且效率不高,所以不推荐这种用法,了解即可。
2)创建和访问字典:
(1)字典的使用非常简单,它有自己的标志性符号,就是用大括号({})来定义,字典由“键”和“值”共同构成,每一对键值组合称为"项”。
如图便是创建了一个名为dict1的字典并对其进行输出。在字典的创建过程中要注意的是,字典的“键”必须是独一无二的,但值不必,值可以是任意数据类型,但必须是不可变的,如字符串,元组等
(2)也可以通过内置函数dict()来创建字典:
要注意的是dict()函数只能要有一个参数,因此需要把字典打包为一个元组(列表)序列。
(3)还可以通过提供映射关系的参数来创建字典
在字典中不允许一个建出现两次,如果同一个键被赋值两次,后一个键会被记住,以下是几种创建同一种字典的方式,大家可以参考一下。
需要注意的是,字典与列表不同,字典是不支持通过“+”来连接或是进行重复操作,这些都是会报错的。
2)关于字典的内置方法:
1.fromkeys()方法用于创建迁返回一个新的字典,它有两个参数:第一个参数是字典的
键;第二个参数是可选的,是传入键对应的值,如果不提供,那么默认是None。
但是这个方法不是很经常用到,所以了解即可。
2.以下是一些比较常用的方法:
-
ict.get(key, default)
:获取指定键对应的值,如果键不存在,则返回默认值default
,如果不提供默认值,则返回None
。 -
dict.keys()
:返回一个包含字典所有键的可迭代对象。 -
dict.values()
:返回一个包含字典所有值的可迭代对象。 -
dict.items()
:返回一个包含字典所有键值对的可迭代对象,每个键值对表示为一个元组(key, value)
。 -
dict.update(other_dict)
:将其他字典other_dict
中的键值对更新到当前字典中。如果键已存在,则会覆盖对应的值。 -
dict.pop(key, default)
:移除并返回指定键对应的值,如果键不存在,则返回默认值default
,如果不提供默认值,则会抛出KeyError
。 -
dict.popitem()
:随机弹出并返回一个键值对作为元组,用于遍历字典。 -
dict.clear()
:清空字典,删除所有的键值对。 -
dict.copy()
:创建并返回一个字典的浅拷贝副本。 -
len(dict)
:返回字典中键值对的数量。
二.集合
字典在Python中是对数学概念的支持的直接映射,而与此同时也有一个与字典近似定义方法的存储方式-------“集合”。
1)集合与字典的关系:
如图所示,相同的{}定义出了不同的存储类型,num1即为字典,而num2就是与其相近的集合了,在Python3.中,如果用大括号括起一堆数字但没有体现出映射关系,那么就认为这堆数据为一个集合而不是映射。
集合在Python中体现的最大特点就是两个字:唯一.
2) 创建集合:
常见的创建集合有两种方式:一种是直接把元素用大括号括起来,另一种就是使用内置函数set()。
如图set1与set2相同,返回结果为true,说明二者相同,而在创建集合使用set()方法的时候要注意set()的参数只有一个,因此可以把一大堆数打包为一个列表或者是一个元组后,传入set()函数中,那么接下来就是集合的最主要特点:唯一。
如图,现在要去除列表[1,2,3,4,5,6,6,1,7]中的重复元素,可以这么写。
以此便达到所需要的列表,但是这个代码可不可以缩短呢?答案是可以的,我们可以通过借助集合的唯一性来实现这个要求。
3)访问集合:
由于集合中的元素是无序的,所以并不能像序列那样用下标来进行访问,但是可以通过迭代器来把集合中的数据一个个的读取出来。
可以使用in和not in来判断一个元素是否在集合中。
而向集合中添加元素则可以使用add()方法,删除元素则可以使用remove()方法。
以上便是关于字典和集合的相关内容,希望对大家有帮助.