妇产医院网络建设公司,网络优化网站建设学习,石龙建设网站,电子商务网站的作用有哪些Time will tell.前言迄今为止#xff0c;我们已经为大家介绍了Python中的三种容器型数据类型#xff0c;但是这些数据类型还不足以帮助我们解决所有的问题。例如#xff0c;我们要保存一个人的信息#xff0c;包括姓名、年龄、体重、单位地址、家庭住址、本人手机号、紧急联…Time will tell.前言迄今为止我们已经为大家介绍了Python中的三种容器型数据类型但是这些数据类型还不足以帮助我们解决所有的问题。例如我们要保存一个人的信息包括姓名、年龄、体重、单位地址、家庭住址、本人手机号、紧急联系人手机号等信息你会发现我们之前学过的列表、元组和集合都不是最理想的选择。person1 [‘王大锤’, 55, 60, ‘科华北路62号’, ‘中同仁路8号’, ‘13122334455’, ‘13800998877’]person2 (‘王大锤’, 55, 60, ‘科华北路62号’, ‘中同仁路8号’, ‘13122334455’, ‘13800998877’)person3 {‘王大锤’, 55, 60, ‘科华北路62号’, ‘中同仁路8号’, ‘13122334455’, ‘13800998877’}集合肯定是最不合适的因为集合有去重特性如果一个人的年龄和体重相同那么集合中就会少一项信息同理如果这个人的家庭住址和单位地址是相同的那么集合中又会少一项信息。另一方面虽然列表和元组可以把一个人的所有信息都保存下来但是当你想要获取这个人的手机号时你得先知道他的手机号是列表或元组中的第6个还是第7个元素当你想获取一个人的家庭住址时你还得知道家庭住址是列表或元组中的第几项。总之在遇到上述的场景时列表、元组、字典都不是最合适的选择我们还需字典(dictionary)类型这种数据类型最适合把相关联的信息组装到一起并且可以帮助我们解决程序中为真实事物建模的问题。Python程序中的字典跟现实生活中的字典很像它以键值对(键和值的组合)的方式把数据组织到一起我们可以通过键找到与之对应的值并进行操作。就像《新华字典》中每个字(键)都有与它对应的解释(值)一样每个字和它的解释合在一起就是字典中的一个条目而字典中通常包含了很多个这样的条目。创建和使用字典在Python中创建字典可以使用{}字面量语法这一点跟上一节课讲的集合是一样的。但是字典的{}中的元素是以键值对的形式存在的每个元素由:分隔的两个值构成:前面是键:后面是值代码如下所示。xinhua {麓: 山脚下, 路: 道往来通行的地方方面地区南货外货种类他俩是一人,蕗: 甘草的别名, 潞: 潞水水名即今山西省的浊漳河潞江水名即云南省的怒江}print(xinhua)person{name: 王大锤, age: 55, weight: 60, office: 科华北路62号,home: 中同仁路8号, tel: 13122334455, econtact: 13800998877}print(person)通过上面的代码相信大家已经看出来了用字典来保存一个人的信息远远优于使用列表或元组因为我们可以用:前面的键来表示条目的含义而:后面就是这个条目所对应的值。当然如果愿意我们也可以使用内置函数dict或者是字典的生成式语法来创建字典代码如下所示。#dict函数(构造器)中的每一组参数就是字典中的一组键值对person dict(name王大锤, age55, weight60, home中同仁路8号)print(person) #{name: 王大锤, age: 55, weight: 60, home: 中同仁路8号}#可以通过Python内置函数zip压缩两个序列并创建字典items1 dict(zip(ABCDE, 12345))print(items1) #{A: 1, B: 2, C: 3, D: 4, E: 5}items2 dict(zip(ABCDE, range(1, 10)))print(items2) #{A: 1, B: 2, C: 3, D: 4, E: 5}#用字典生成式语法创建字典items3 {x: x ** 3 for x in range(1, 6)}print(items3) #{1: 1, 2: 8, 3: 27, 4: 64, 5: 125}想知道字典中一共有多少组键值对仍然是使用len函数如果想对字典进行遍历可以用for循环但是需要注意for循环只是对字典的键进行了遍历不过没关系在讲完字典的运算后我们可以通过字典的键获取到和这个键对应的值。person {name: 王大锤, age: 55, weight: 60, office: 科华北路62号}print(len(person)) #4for key inperson:print(key)字典的运算对于字典类型来说成员运算和索引运算肯定是最为重要的前者可以判定指定的键在不在字典中后者可以通过键获取对应的值或者向字典中加入新的键值对。值得注意的是字典的索引不同于列表的索引列表中的元素因为有属于自己有序号所以列表的索引是一个整数字典中因为保存的是键值对所以字典的索引是键值对中的键通过索引操作可以修改原来的值或者向字典中存入新的键值对。特别提醒大家注意的是字典中的键必须是不可变类型例如整数(int)、浮点数(float)、字符串(str)、元组(tuple)等类型的值显然列表(list)和集合(set)是不能作为字典中的键的当然字典类型本身也不能再作为字典中的键因为字典也是可变类型但是字典可以作为字典中的值。关于可变类型不能作为字典中的键的原因我们在后面的课程中再为大家详细说明。这里我们先看看下面的代码了解一下字典的成员运算和索引运算。person {name: 王大锤, age: 55, weight: 60, office: 科华北路62号}#检查name和tel两个键在不在person字典中print(name in person, tel in person) #True False#通过age修将person字典中对应的值修改为25if age inperson:person[age] 25#通过索引操作向person字典中存入新的键值对person[tel] 13122334455person[signature] 你的男朋友是一个盖世垃圾他会踏着五彩祥云去赢取你的闺蜜print(name in person, tel in person) #True True#检查person字典中键值对的数量print(len(person)) #6#对字典的键进行循环并通索引运算获取键对应的值for key inperson:print(f{key}: {person[key]})需要注意在通过索引运算获取字典中的值时如指定的键没有在字典中将会引发KeyError异常。字典的方法字典类型的方法基本上都跟字典的键值对操作相关可以通过下面的例子来了解这些方法的使用。例如我们要用一个字典来保存学生的信息我们可以使用学生的学号作为字典中的键通过学号做索引运算就可以得到对应的学生我们可以把字典中键对应的值也做成一个字典这样就可以用多组键值对分别存储学生的姓名、性别、年龄、籍贯等信息代码如下所示。#字典中的值又是一个字典(嵌套的字典)students{1001: {name: 狄仁杰, sex: True, age: 22, place: 山西大同},1002: {name: 白元芳, sex: True, age: 23, place: 河北保定},1003: {name: 武则天, sex: False, age: 20, place: 四川广元}}#使用get方法通过键获取对应的值如果取不到不会引发KeyError异常而是返回None或设定的默认值print(students.get(1002)) #{name: 白元芳, sex: True, age: 23, place: 河北保定}print(students.get(1005)) #Noneprint(students.get(1005, {name: 无名氏})) #{name: 无名氏}#获取字典中所有的键print(students.keys()) #dict_keys([1001, 1002, 1003])#获取字典中所有的值print(students.values()) #dict_values([{...}, {...}, {...}])#获取字典中所有的键值对print(students.items()) #dict_items([(1001, {...}), (1002, {....}), (1003, {...})])#对字典中所有的键值对进行循环遍历for key, value instudents.items():print(key, ---, value)#使用pop方法通过键删除对应的键值对并返回该值stu1 students.pop(1002)print(stu1) #{name: 白元芳, sex: True, age: 23, place: 河北保定}print(len(students)) #2#stu2 students.pop(1005) # KeyError: 1005stu2 students.pop(1005, {})print(stu2) #{}#使用popitem方法删除字典中最后一组键值对并返回对应的二元组#如果字典中没有元素调用该方法将引发KeyError异常key, valuestudents.popitem()print(key, value) #1003 {name: 武则天, sex: False, age: 20, place: 四川广元}#setdefault可以更新字典中的键对应的值或向字典中存入新的键值对#setdefault方法的第一个参数是键第二个参数是键对应的值#如果这个键在字典中存在更新这个键之后会返回原来与这个键对应的值#如果这个键在字典中不存在方法将返回第二个参数的值默认为Noneresult students.setdefault(1005, {name: 方启鹤, sex: True})print(result) #{name: 方启鹤, sex: True}print(students) #{1001: {...}, 1005: {...}}#使用update更新字典元素相同的键会用新值覆盖掉旧值不同的键会添加到字典中others{1005: {name: 乔峰, sex: True, age: 32, place: 北京大兴},1010: {name: 王语嫣, sex: False, age: 19},1008: {name: 钟灵, sex: False}}students.update(others)print(students) #{1001: {...}, 1005: {...}, 1010: {...}, 1008: {...}}内容来源于网络如有侵权请私信删除