第七章 字典和集合[DDT书本学习 小甲鱼]【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={}
dict1=dict1.fromkeys(range(32),"赞")
print(dict1)
-----------------------------
{0: '赞', 1: '赞', 2: '赞', 3: '赞', 4: '赞',......31 '赞'}
=======================================
dict1={}
dict1=dict1.fromkeys(range(32),"赞")
for eachkey in dict1.keys():
print(eachkey)
-------------
0
1
2
.
.
31
=====================================
dict1={}
dict1=dict1.fromkeys(range(32),"赞")
for eachvalue in dict1.values():
print(eachvalue)
--------------

.
.
.

=========================================
dict1={}
dict1=dict1.fromkeys(range(32),"赞")
for eachItem in dict1.items():
print(eachItem)
---------------------------
(0, '赞')
(1, '赞')
.
.
(31, '赞')
===================================================
当我们不明确字典内部的键和项的时候,引用会出错。如下
dict1={}
dict1=dict1.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))
-----------------------
three
None
===========================================
如果想找不到该参数时候,返回指定值 比如“木有”:
print(dict2.get(32,"木有"))
==============================================
如果不知道一个键 是否再字典中 可以用成员资格操作符 in或not in
dict2={1:"one",2:"two",3:"three"}
print(3 in dict2)
print(4 in dict2)
print(5 not in dict2)
------------------------
True
False
True
==================================================
再字典中检查键的成员资格比序列更高效,当数据规模大的时候,差距很明显。
原因:字典采用哈希方法一对一找到成员,序列采用的是迭代的方式阻隔比对。
清空字典,则使用 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"}
b=a
print(b)
a={}
print(a)
print(b)
-------------
{'name': 'Daodantou'}
{}
{'name': 'Daodantou'}
=========================
a={"name":"Daodantou"}
b=a
print(b)
a.clear()
print(a)
print(b)
---------------------------
{'name': 'Daodantou'}
{}
{}
===============================
数据密码时候,采用赋值为空字典存在安全隐患,而clear()方法安全些。
拓展思考 在这个问题上 有关 整型 字符串区别
a=1
b=a
print(b)
a=7
print(a)
print(b)
---------
1
7
1
-------=================-----
a="坦克"
b=a
print(b)
a="飞机"
print(a)
print(b)
--------------------
坦克
飞机
坦克
=================================

转载于:https://www.cnblogs.com/daodantou/p/10337770.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/248563.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Installing Node.js and Express on Ubuntu

Installing Node.js and Express on Ubuntu 1. 在nodejs官网上下载Linux Binaries(已经包含了npm):2. 安装Node.js下载后解压,并在解压的文件夹中启动Terminal后,输入命令: sudo cp * /usr/local/ -r再输入命令: node -v …

Chrome插件我只服你——10w人都在使用的浏览器插件

✨文章摘要导读\textcolor{blue}{文章摘要导读}文章摘要导读 🔥 为什么选择Chrome插件\textcolor{green}{为什么选择Chrome插件}为什么选择Chrome插件 🔥 插件具备的强大优势\textcolor{green}{插件具备的强大优势}插件具备的强大优势 🔥 …

H3C通过端口ID决定端口角色

转载于:https://www.cnblogs.com/fanweisheng/p/11153312.html

特殊属性

转载于:https://www.cnblogs.com/mengbin0546/p/10338371.html

一款超强的手机屏幕投影工具

✨文章摘要导读\textcolor{blue}{文章摘要导读}文章摘要导读 🔥 前言\textcolor{green}{前言}前言 🔥 准备工作\textcolor{green}{准备工作}准备工作 🔥 Scrcpy安装\textcolor{green}{Scrcpy安装}Scrcpy安装 🔥 工具调试\text…

JS一维数组转化为三维数组有这个方法就够了

今天在CSDN上问答区看到一个提问的小伙伴,是想要将一维数组转化为三位数组的需求,正好不是很忙,乐于助人的我立马给这位同学安排上 下面是后端同学返给我们的一维数组数据格式 [{品牌: xiaomi, 机型: 10, 配置: 512},{品牌: xiaomi, 机型: 10…

Day 21 20190205 老男孩python学习第21天 内容整理

今天写作业,明天后天要在外旅游 写作业写了7个小时。 1 def read_file_as_dict(where):2 staff_dict {}3 f open(%s % where, mode"r", encodingutf-8)4 data f.read()5 f.close()6 row data.strip().split(\n)7 for staff i…

SCOM 简单界面操作指南 [SCOM中文系列之三]

今天大概介绍下SCOM的管理界面,大概分三个重要的功能版块 Monitoring 监控版面 Authoring (中文版不知道翻译成什么,主要编辑MP) Administration 管理操作 首先说一下管理操作区,开始装好的SCOM都需要来这里配置一下的…

趁着对象泡脚的功夫,我把vueX吃透了

文章目录vueX🌟Vuex的概述什么是vuexVuex管理数据的优点🌟Vuex的基本使用步骤1.安装 npm i vuex --save2.在src文件目录下新建store>index.js文件3.口文件里面引入store,然后再全局注入4.使用🌟Vuex中的核心特性State在组件中访…

【题解】FBI序列

题目描述 两伙外星人策划在未来的XXXX年侵略地球,侵略前自然要交换信息咯,现在,作为全球保卫队队长,你截获了外星人用来交换信息的一段仅由“F”,“B”,“I”,“O”组成的序列。为了保卫地球和平…

vue基础(上篇)

✨有粉丝在私信中联系博主,希望博主能够系统的出一篇关于vue的基础篇\textcolor{blue}{ 有粉丝在私信中联系博主,希望博主能够系统的出一篇关于 vue的基础篇}有粉丝在私信中联系博主,希望博主能够系统的出一篇关于vue的基础篇 ✨ 今天他来了…

depends用于测试程序运行所缺少的文件,可以帮我们很快找到问题

DEPENDS工具和DUMPBIN工具使用阅读目录(Content) 1.Depends2.DUMPBIN2.1 开启CMD2.2 移动目录到C:\Program Files (x86)\Microsoft Visual Studio\VC98\Bin2.3 运行命令:VCVARS32.BAT2.4 下面就可以调用dumpbin.exe命令了在系统部署运行时我们经常发现某个程序在开发机器中可以…

友联

欢迎来到小站友链区,欢迎━(`∀)ノ亻!。 ljc20020730学长巨佬_WA自动机珂朵莉最可爱了BLUESKY007雷姆最可爱啦扬子曰他的代码是神奇的lukelin机房最强如果你想要成为chhokmah小站的朋友的话,请你先把小站加入为友链站哟(^&#xf…

vue基础(中篇)

✨有粉丝在私信中联系博主,希望博主能够系统的出一篇关于vue的基础篇\textcolor{blue}{ 有粉丝在私信中联系博主,希望博主能够系统的出一篇关于 vue的基础篇}有粉丝在私信中联系博主,希望博主能够系统的出一篇关于vue的基础篇 ✨ 今天他来了…

DR图像的畸变校正

DR图像容易产生S形、枕形和局部失真的情况,这给医生对图像的判断带来干扰。而且在医学图像的三维重建中,未经校正的图像进行重建,还会带来一定的重影等干扰。因此,畸变校正是DR图像进行后续处理,不得不对待的一个问题。…

vue基础(下篇)

介绍 对vue组件的介绍网上有很多大家可以自行查询 组件 (Component) 是 Vue.js 最强大的功能之一 组件可以扩展 HTML 元素,封装可重用的代 组件注册 全局注册 Vue.component(‘组件名称’, { }) 第1个参数是标签名称,第2个参数是一个选项对象 全局组…

MS17-010漏洞复现

攻击机:192.168.148.132 kali linux2018.2 x64 靶机:192.168.1.129 win7 x64 首先用msfconsole的smb模块扫描,看看是否有漏洞 use auxiliary/scanner/smb/smb_ms17_010 set rhosts 192.168.1.129 (目标主机) Ho…

转:HTTP协议简介与在python中的使用详解

1. 使用谷歌/火狐浏览器分析 在Web应用中,服务器把网页传给浏览器,实际上就是把网页的HTML代码发送给浏览器,让浏览器显示出来。而浏览器和服务器之间的传输协议是HTTP,所以: HTML是一种用来定义网页的文本&#xff0c…

深受企业青睐的华为云

作为中国经济活力与韧性的重要保障,无数中小企业也在为夺得各自领域的冠军你追我赶。而席卷全球的数字化转型浪潮,则将这场冠军争夺赛推向了关键节点。企业数字化的第一步就是业务云端化,对企业来说云计算是不可或缺的数字底座。上云&#xf…

一个程序员的水平能差到什么程度?

老板觉得公司里都是男的,缺少一点阴柔之气,想平衡一下,正巧当时互金公司倒了一大批,大批简历投到公司,老板以为自己也是技术出身,就招了一个三年工作经验的女程序员,互金出来的,要价…