企业备案 网站名称,网站建设部署与发布答案,网站设计版式,网站开发技术基础教程7.1.2 字典的各种内置方法在序列里为不存在位置赋值#xff0c;会出现错误#xff1b;而在字典不存在得位置赋值#xff0c;会创建。工厂函数#xff08;类型#xff09;以前学过 str(),int(),list(),tuple()....... 1.fromkeys() 用于创建和返回一个新的字典 不是修改 2… 7.1.2 字典的各种内置方法在序列里为不存在位置赋值会出现错误而在字典不存在得位置赋值会创建。工厂函数类型以前学过 str(),int(),list(),tuple()....... 1.fromkeys() 用于创建和返回一个新的字典 不是修改 2个参数 第一个是键第二个可选默认None举例如下dict1{}dict1.fromkeys((1,2,3))print(dict1)------------------------{} #????????????????????? 原始字典是空的方法返回的是一个新字典改写如下dict1{}print(dict1.fromkeys((1,2,3)))----------------------------{1: None, 2: None, 3: None}dict2{}print(dict2.fromkeys((1,2,3),Number))----------------------------{1: Number, 2: Number, 3: Number}dict3{}print(dict3.fromkeys((1,2,3),(one,two,three)))-----------------------------------{1: (one, two, three), 2: (one, two, three), 3: (one, two, three)}dict3字典改新过程后并不是对应关系而是将后面的所有当作一个值。 2.keys()和values()和items()dict1{}dict1dict1.fromkeys(range(32),赞)print(dict1)-----------------------------{0: 赞, 1: 赞, 2: 赞, 3: 赞, 4: 赞,......31 赞}dict1{}dict1dict1.fromkeys(range(32),赞)for eachkey in dict1.keys(): print(eachkey)-------------012..31dict1{}dict1dict1.fromkeys(range(32),赞)for eachvalue in dict1.values(): print(eachvalue)--------------赞...赞dict1{}dict1dict1.fromkeys(range(32),赞)for eachItem in dict1.items(): print(eachItem)---------------------------(0, 赞)(1, 赞)..(31, 赞)当我们不明确字典内部的键和项的时候引用会出错。如下dict1{}dict1dict1.fromkeys(range(32),赞)print(dict1[32])-------------------------------KeyError: 32 #提示没有这个键如何解决以上问题呢3.get() 括号内填写的是键 不是序列号dict2{1:one,2:two,3:three}print(dict2.get(3))print(dict2.get(0))-----------------------threeNone如果想找不到该参数时候返回指定值 比如“木有”print(dict2.get(32,木有))如果不知道一个键 是否再字典中 可以用成员资格操作符 in或not indict2{1:one,2:two,3:three}print(3 in dict2)print(4 in dict2)print(5 not in dict2)------------------------TrueFalseTrue再字典中检查键的成员资格比序列更高效当数据规模大的时候差距很明显。原因字典采用哈希方法一对一找到成员序列采用的是迭代的方式阻隔比对。清空字典则使用 clear()方法dict2{1:one,2:two,3:three}dict2.clear()print(dict2)-------------------{}使用变量名赋值为一个空字典方法来清空dict2{1:one,2:two,3:three}dict2{}print(dict2)-----------------------{}效果看似一样啊思考如下代码 a{name:Daodantou}baprint(b)a{}print(a)print(b)-------------{name: Daodantou}{}{name: Daodantou}a{name:Daodantou}baprint(b)a.clear()print(a)print(b)---------------------------{name: Daodantou}{}{}数据密码时候采用赋值为空字典存在安全隐患而clear()方法安全些。拓展思考 在这个问题上 有关 整型 字符串区别a1baprint(b)a7print(a)print(b)---------171------------a坦克baprint(b)a飞机print(a)print(b)--------------------坦克飞机坦克转载于:https://www.cnblogs.com/daodantou/p/10337770.html