Python3字典

字典是另一种可变容器模型,可存储任意类型的对象。

字典的每个键值(key=>value)对用冒号分隔,每个对之间用逗号分隔,整个字典包括在花括号里,格式如下

d = {key1 : value,key2 : value2}

键必须是唯一,但值则不必。

值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组。

一个简单字典实例:

dict = {‘Alice’: ‘2341’,’Beth’ : ‘9102’,’Cecil’ : ‘3258’}

创建字典:

dict1 = {‘abc’ : 456}
dict2 = {‘abc’ : 123, 98.6 : 37}

访问字典的值

把相应的键放到方括号中:

 

 

 

修改字典:

向字典添加新内容的方法是增加新的键/值对,修改或删除已有的键值:

 

 

 

删除字典元素:

能删单元的元素,也能清空字典,清空只需要一项操作。

显示删除一个字典用del命令。

 

 

 

字典键的 特性

字典值可以是任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。

两个重要的点需要记住:

1) 不允许同一个键出现两次,创建时如果同一个键被赋值两次,后一个值会被记住。

 

 

2) 键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行。

 

 

 

字典内置函数&方法

  1. len(dict):计算字典元素的个数,即键的总数。
  2. str(dict):输出字典,以可打印的字符串表示。

     

  3. type(variable):返回可输入的变量类型,如果变量是字典,就返回字典类型。

 

Python字典包含了以下的内置方法

函数

描述

radiansdict.clear()

删除字典内所有元素

radiansdict.copy()

返回一个字典的浅复制

radiansdict.fromkeys()

创建一个字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值

radiansdict.get(key,default=None)

返回指定键的值,如果值不存在字典值中就返回default值

key in dict

如果键在字典dict里返回true,否则返回false

radiansdict.items()

以列表返回可遍历的(键,值)元组数组

radiansdict.keys()

返回一个迭代器,可以使用list()来转换成列表

radiansdict.setdefault(key,default=None)

和get()相似,但如果键不存在与字典中, 将会添加键并将值设为default

radiansdict.update(dict2)

把字典dict2的键/值更新到dict中

radiansdict.values()

返回一个迭代器可以使用list()来转换成列表

pop(key[default])

删除字典给定键key所对应的值,返回值为被删除的值。key值必须给出,否则,返回default值

popitem()

随机返回并删除字典中一对键和值(一般删除末尾对)

 

 

字典的键值是“只读”的,所以不能对键和值分别进行初始化

字典是支持无限嵌套的

 

用字典记录学生姓名和分数,再分级

/***
student.py
***/
students={}
write = 1
while write:name = str(input("please input name : "))grade = int(input("please input grade : "))students[str(name)] = gradewrite = int(input("please input ?\n 1--continue  0--exit"))
print('name rate'.center(20,'-'))
for key,value in students.items():if value >= 90:print("%s %s A ".center(20,'-')%(key,value))elif 89 > value >= 60:print("%s %s B ".center(20,'-')%(key,value))else:print("%s %s C ".center(20,'-')%(key,value))

运行结果:

robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 key.py

please input name : wang

please input grade : 12

please input ?

 1--continue  0--exit1

please input name : qing

please input grade : 67

please input ?

 1--continue  0--exit1

please input name : he

please input grade : 98

please input ?

 1--continue  0--exit0

-----name rate------

------qing  67 B ------

------wang 12 C ------

------he 98 A ------

 

字典可以通过以下方式调换key和value,注意原始value类型是不可变类型:

/***
reverse.py
***/
dic = {'a':1,'b':2,'c':3,
}
reverse = {v:k for k,v in dic.items()}
print(dic)
print(reverse)

运行结果:

robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 rever.py

{'a': 1, 'c': 3, 'b': 2}

{1: 'a', 2: 'b', 3: 'c'}

 

循环显示字典key和value值:

/***
show.py
***/
b = {'a' : 'runoob','b':'google'}
for i in b.values():print(i)
for c in b.keys():print(c)

运行结果:

robot@ubuntu:~/wangqinghe/python/20190823$ python3.5 loop.py

runoob

google

a

b

 

转载于:https://www.cnblogs.com/wanghao-boke/p/11401938.html

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

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

相关文章

多进程服务器

注意&#xff1a;包含了“wrap.c” 和“wrap.h”文件在上篇博客中 /*** server.c ***/ #include<stdio.h> #include<string.h> #include<netinet/in.h> #include<arpa/inet.h> #include<signal.h> #include<sys/wait.h> #include<ctype…

Python3集合

集合&#xff08;set&#xff09;是一个无序的不重复元素序列。 可以使用大括号{ } 或set&#xff08;&#xff09;函数来创建集合&#xff0c;注意&#xff1a;创建一个空集合必须用set(),{ }是用来创建一个空字典的。 创建格式&#xff1a; param {value01,value02,…} set(…

Python3循环

Python中while语句的一般形式&#xff1a; while 判断条件: 语句 同样需要注意冒号和缩进&#xff0c;另外在Python中没有do…while循环 下面的实例计算1到100总和 ##calc.py n 100sum 0 counter 1 while counter < n:sum sum countercounter 1print("total from…

Python3迭代器和生成器

迭代器 迭代是Python最强大的功能之一&#xff0c;是访问元素集合的一种方法。 迭代器是一个可以记住遍历的位置的对象。 迭代器对象从集合的第一个元素开始访问&#xff0c;直到所有的元素被访问完结束&#xff0c;迭代器只能向前不会后退。 迭代器有两个基本方法&#xff0c;…

Python3函数

函数是组织好的&#xff0c;可重复使用的&#xff0c;用来实现单一&#xff0c;或相关功能的代码段。 函数能提高应用的模块性&#xff0c;和代码的重复使用率。 定义一个函数 可以定义一个由自己想要功能的函数&#xff0c;以下是简单规则&#xff1a; l 函数代码块是以def关…

epoll函数

epoll是Linux下多路复用IO接口select/poll的增强版本&#xff0c;它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率&#xff0c;因为它会复用文件描述符集合来传递结果而不用迫使开发者每次等待事件之前都必须重新准备要被侦听的文件描述符集合&#xff0…

Python3数据结构

列表&#xff1a; Python列表是可变的&#xff0c;这是它区别于字符串数组和元组的最重要的特点。列表可以修改&#xff0c;而字符串和元组不能。 以下是Python中列表的描述方法&#xff1a; 方法 描述 list.append(x) 将元素添加到列表结尾 list.extend(L) 通过添加指定列…

Python3输入输出

Python两种输出值的方式&#xff0c;表达式语句和print()函数。 第三种方式是使用文件对象的write()方法&#xff0c;标准输出文件可以用sys.stdout的引用。 如果你希望输出的形式更加多样&#xff0c;可以使用str.fomat()函数来格式化输出值。 如果你希望将输出的值转化成字符…

Python3正则表达式

正则表达式是一个特殊的字符序列&#xff0c;他能帮助你方便的检查一个字符串是否与某种模式匹配。re.match函数 re.match尝试从字符串的起始位置匹配一个模式&#xff0c;如果不是起始位置匹配成功的话&#xff0c;match()就返回一个none。 函数语法&#xff1a; re.match(pat…

signal()函数

函数原型 void (*signal(int sig,void(*func)(int)))(int); 指定使用sig指定的信号编号处理信号的方法。参数func指定程序可以处理信号的三种方式之一&#xff1a; l 默认处理(SIG_DFL)&#xff1a; 信号由该特定信号的默认动作处理l 忽略信号&#xff08;SIG_IGN&a…

【C++学习之路】第一章——C++核心方法总论

1 C核心方法总论 1.1 核心思想 通过实际项目来学习编程&#xff0c;更高效掌握编程规则&#xff0c;以及明白各种语法规则的实际应用。 实验思想&#xff1a;任何C的参考资料都不可能覆盖你遇到的所有问题&#xff0c;这个时候&#xff0c;最好的办法就是&#xff0c;编辑代…

【学会如何学习系列】从婴儿到大学——学习的本质从未改变过

从婴儿到大学——学习的本质从未改变过 从我们出生一直到现在&#xff0c;其实&#xff0c;学习的本质从来都没有改变过&#xff0c;并且&#xff0c;婴儿时期的我们&#xff0c;是学习能力最强的时候&#xff0c;随着我们不断长大&#xff0c;外界的诱惑越来越多&#xff0c;…

【Verilog HDL学习之路】第二章 Verilog HDL的设计方法学——层次建模

2 Verilog HDL的设计方法学——层次建模 重要的思想&#xff1a; 在语文教学中&#xff0c;应该先掌握核心方法论&#xff0c;再用正确的方法论去做题目&#xff0c;这样能够逐渐加深对于方法论的理解&#xff0c;做题的速度和准确率也会越来越高。在Verilog HDL中&#xff0c…

【Verilog HDL】第四章 模块的端口连接规则——污水处理模型

先放上连接规则的简图&#xff0c;再详细解释 1. 构建模型——污水处理之流水模型 我们先将上述结构构件一个简单模型&#xff0c;以帮助我们理解。 污水&#xff1a;输入数据净水&#xff1a;输出数据双向数据暂不讨论&#xff0c;取输入和输出的交集即可污水处理厂&…

【Verilog HDL】从逻辑电路图到门级建模——人工翻译的方法论

从左到右&#xff0c;从上到下 先搞定缓冲/非门&#xff0c;再写与/或门 1. 实例解读 先以四选一数据选择器进行说明 对于数字逻辑的部分不再说明&#xff0c;直接进行逻辑电路图到Verilog门级建模的人工翻译过程的描述。 1.1 端口和线网分析 确定输入/输出端口 输入端口 …

【Verilog HDL】语句的并发执行

1. 实践得到的启发 先从一个简单的现象得出结论&#xff0c;Verilog语句是并发执行的&#xff01; 同时&#xff0c;这也是**$monitor系统任务为全局有效**的一个重要支持因素&#xff0c;如果没有并发&#xff0c;它是完不成这项功能的实现的。 众所周知&#xff0c;高级语…

【数字逻辑】第四章 组合逻辑电路:端口设计 端口拓展的方法

1. 端口设计的方法 1.1 数据选择器 以四选一数据选择器为例&#xff0c;需要的不同接口类型为 输入端口 数据输入端口地址输入端口使能端&#xff08;控制与拓展&#xff09; 输出端口 数据输出端口 2. 端口拓展的方法——层次建模思想 2.0 两个拓展方向 2.0.1 “数组型…

【Verilog HDL】第三章 reg和net及其一组类型的区别——充分运用实验思维

0 确定问题的讨论层级与范围 本文讨论的层次是 数字逻辑与Verilog HDL语言 讨论的范围是&#xff1a; 数据存储而不是讨论逻辑 1 线网类型 1.1 wire类型 这个暂时没什么好说的&#xff0c;一般常用的就是wire类型&#xff0c;需要注意的是&#xff1a; 默认是标量&…

【C/C++ 汇编语言 Verilog】越界截断——数据越界问题的多角度分析

0 前言 0.1 讨论层级和范围 讨论层级 计算机底层&#xff1a;硬件层次与汇编指令层次信息与二进制位 讨论范围 信息的存储与运算在汇编语言与Verilog HDL中的联系与区别事实上&#xff0c;数据越界截断问题&#xff0c;在计算机体系的任何层次&#xff0c;都可能发生&#xf…

【VS C++ 2010】查看内存的方法详解

1 示例代码 对于以下代码&#xff1a; int main() {int a 100010001000;int b 100;cout << "a " << a << " " << &a << endl;cout << "b " << b << " " << &b…