如何查字典,如何使用Python字典。列表和元组我已经学过了,这两个是按顺序排列的,所以可以用索引取值。本博客要学习的是词典。从上面可以看出,字典一定是不能根据索引取值的,也就是没有顺序,不连续的数据结构。字典的基本操作字典的定义可以看作是一个列表类型的数据结构,也是一个可以容纳很多其他数据类型的容器,只不过字典中的元素是用“key-value”来表示的,和“key-value”成对出现,key和value的关系可以描述为通过key得到value(这是字典的核心概念,就像通过部首查字典一样)。字典的语法格式如下:#my_dict是一个变量名my_dict={key1:value1,key2:value2...}其中字典的值为上述格式中的value1,value2可以是数值、字符串、列表、元组等。比如中英文对照表可以用字典来表示。my_dict={"red":"red","green":"green","blue":"blue"}print(my_dict)print(type(my_dict))输出是:{'red':'red','green':'green','blue':'blue'}现在我们需要重新建立对字典的理解,它建立了键和值之间的一一对应关系。获取字典的值字典是由键值定义的,值是由键获得的,所以字典中不允许有重复的键。获取字典中值的语法格式为:my_dict={"red":"red","green":"green","blue":"blue"}print(my_dict["red"])仔细看而且很类似获取列表中的元素,只需要将index位置换成key即可。在字典中添加元素、修改元素和删除元素向字典中添加元素非常简单,只需通过以下语法格式即可实现。my_dict[key]=value例如在刚才的颜色翻译字典中添加一个橙色对应的键值,代码如下:my_dict={"red":"red","green":"green","blue":"Blue"}my_dict["orange"]="Orange"print(my_dict)如果要在字典中增加更多的键值对应关系,按顺序写就可以了。修改元素修改字典中的元素。请记住,确切的值应该称为修改元素。比如将代码中红色对应的值由红色修改为淡红色,通过以下代码完成。my_dict={"red":"red","green":"green","blue":"blue"}my_dict["red"]="lightred"print(my_dict)passmy_dict[keytobemodified]=要修改的新值以完成任务。删除元素如果要删除字典中的特定元素,只需要通过del关键字添加my_dict[要删除的元素的key]即可完成。my_dict={"red":"red","green":"green","blue":"blue"}delmy_dict["red"]print(my_dict)以上内容可以删除特定元素,使用其中一种dictionaryclear方法可以清除字典。my_dict={"red":"red","green":"green","blue":"blue"}my_dict.clear()print(my_dict)上面会输出{}这个符号表示空字典。除了清空字典,还可以直接删除字典变量。my_dict={"red":"red","green":"green","blue":"blue"}delmy_dictprint(my_dict)删除字典变量后,程序在打印my_dict时会直接报错,提示name'my_dict'isnotdefined变量未定义。删除字典时,注意不要误删除整个字典,除非程序需要这样做。字典的补充知识空字典其实刚才已经提到了如何创建空字典。创建空字典的语法如下:my_dict={}空字典一般用于逻辑占位符。这么复杂的是逻辑占位符,也就是first语句后展开的小技巧。获取字典中的元素个数列表和元组都可以使用len获取元素个数。同样的方法也适用于字典。语法格式如下:my_dict_length=len(my_dict)空字典的元素个数为0,大家可以试试看。字典可读性写作很多时候,一个程序不是一个人就能完成的,需要团队的通力合作。在编写代码时,如何使您的代码可读(其他人可以理解)变得非常重要。为了可读性,建议每行定义一个元素。my_dict={"red":"red","green":"green","blue":"blue"}print(my_dict)字典的遍历字典也需要遍历输出中的每一个元素。对于字典,我们已经知道它是由键值对组成的,对应的遍历输出有所有的键值,所有的键,所有的值。遍历字典的key-value调用字典的items方法获取字典的所有key值,比如下面的代码:my_dict={"red":"red","green":"green","blue":"blue"}print(my_dict.items())内容输入为:dict_items([('red','red'),('green','green'),('blue','blue')])接下来循环输出字典的内容。有几种不同的写法。先尝试编写如下代码学习知识点。my_dict={"red":"red","green":"green","blue":"blue"}#直接遍历my_dictforiteminmy_dict:print(item)#遍历my_dict的items方法foriteminmy_dict.items():print(item)#遍历my_dict的items方法,使用key和value接收my_dict.items()中的key,value:print("key:{},value:{}".format(key,value))以上三种输出内容请自行参考。第一种输出所有的键;第二种类型将每个键值对输出为一个元组;第三种是通过变量和元组之间的赋值直接输出key和value。变量和元组之间的赋值可以参考下面的代码:a,b=(1,2)print(a)print(b)注意这种方式的变量赋值必须匹配左边的变量和右边的元素组中的元素很好对应,一个变量对应元组中的一项,顺序也对应。如果不对应,会出现如下错误ValueError:toomanyvaluestounpack。遍历字典的键上面学到的就是遍历字典的键值。可以直接通过keys方法获取字典的所有key,例如下面的代码:my_dict={"red":"red","green":"green","blue":"blue"}forkeyinmy_dict.keys():print(key)遍历字典的值有keys方法获取key,对应通过values获取所有值。因为这个地方和上面的内容太像了,如果你想成为一个合格的程序员,前期的学习是不能减少每天的代码量的,所以这部分就留给你了。字典和其他数据类型的结合首先要认识到字典是一个容器,可以容纳任何数据类型。字典也是一种数据类型,可以包含在容器类中,例如列表和字典本身。这很复杂,对吧?它的核心很简单,看完代码你就明白了。列表嵌套字典直接看效果,一个列表可以嵌套字典。my_list=[{"name":"Eraser","age":18},{"name":"BigEraser","age":20}]print(my_list)print(my_list[0])dictionary的值嵌套列表字典中的元素可以是一个列表,如下:my_dict={"colors":["red","green"],"nums":[1,2,3,4,5],"name":["Eraser"]}print(my_dict)Dictionariesnesteddictionaries字典的值可以是任何数据类型,自然也可以是字典类型,下面的代码大家应该能看懂。my_dict={"colors":{"keys":["red","green"]},"nums":[1,2,3,4,5],"name":["eraser"]}以上print(my_dict)的内容写得非常简单。一句话,就是套娃。字典的方法字典有一些特殊的方法需要单独说明。如果要查看字典的所有方法,使用dir内置函数调用。fromkeys方法这个方法的目的是创建一个字典。语法格式如下:#注意这个方法是直接通过dict调用的#seq是一个序列,可以是一个元组也可以是一个字典my_dict=dict.fromkeys(seq)然后传这个方法来实际创建一个字典。my_list=['red','green']my_dict=dict.fromkeys(my_list)#输出如下{'red':None,'green':None}print(my_dict)my_dict1=dict.fromkeys(my_list,"dictionary")print(my_dict1)的值第一种方法发现输出字典中所有的值都是None(Python中的一个特殊值,相当于空),这个内容是因为字典的默认值为不设置,默认为None,如果需要在定义字典时初始化值,在方法中赋值给第二个参数。get方法get方法用于通过键获取值。如果不存在,可以设置返回一个默认值,比如下面的代码:my_dict={"red":"red","green":"green","blue":"Blue"}print(my_dict.get("red"))#returnredprint(my_dict.get("red1"))#returnNoneprint(my_dict.get("red1","setadefaultnotfoundreturnvalue"))setdefault方法setdefault方法的使用与get方法基本相同,不同的是当setdefault找不到指定的key时,会自动将该key值插入到字典中,比如下面的代码:my_dict={"red":"red","green":"green","blue":"blue"}print(my_dict.setdefault("red"))#返回红色print(my_dict.setdefault("orange"))#returnNoneprint(my_dict)#Output{'red':'red','green':'green','blue':'blue','orange':None}最后一行代码的输出已经包含keyorange和值None,你可以使用dict.setdefault("orange","orange")测试默认值。pop方法该方法用于删除字典元素,语法格式如下:ret_value=dict.pop(key[,default])既然已经写好了这个标准格式,那么先补充一下语法格式的规范,比如dict.pop(key[,default])表示必填参数,[]中包含的参数为非必填参数,这样就可以理解上面语法格式的内容是什么了。my_dict={"red":"red","green":"green","blue":"blue"}#删除指定项ret_value=my_dict.pop('red')#输出删除的红色print(ret_value)#查看字典{'green':'green','blue':'blue'}print(my_dict)如果使用pop方法时找到key,则删除键值对,如果keycannotbefound会返回默认设置的值,如果没有设置该值会报错。my_dict={"red":"red","green":"green","blue":"blue"}#删除指定项,如果没有设置,找不到返回值,会报错直接报错ret_value=my_dict.pop('red2')#删除指定项,找不到key1,返回后面设置的值ret_value=my_dict.pop('red1',"找不到返回值")的摘要字典这篇博客和列表、元组一样,都是Python中非常重要的数据类型。字典因为键值对的概念有了更多的使用场景。Eraser给大家的初学阶段的建议是敲好代码,先建立对Python的整体理解,滚雪球学习Python,这只是第一卷。在上一碗毒鸡汤里,我天真地以为钱是万能的,后来才发现钱不是万能的,它是万能的。O(∩\_∩)O哈哈~