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,一经查实,立即删除!

相关文章

线程回收

pthread_join函数 阻塞等待线程退出,获取线程退出状态 其作用,对应进程中 waitpid() 函数。 int pthread_join(pthread_t thread, void **retval); 成功:0;失败:错误号 参数:thread:线…

Python3数字

Python3数字数据类型用于存储数值。 数据类型是不允许改变的,这就意味着,如果改变数字数据类型的值,将重新分配内存空间。 Python支持三种不同不同的数值类型: 整型(int):通常是被称为整型或整数…

多进程服务器

注意&#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…

服务器之select

select select能监听的文件描述符个数受限于FD_SETSIZE,一般为1024&#xff0c;单纯改变进程打开的文件描述符个数并不能改变select监听文件个数解决1024以下客户端时使用select是很合适的&#xff0c;但如果链接客户端过多&#xff0c;select采用的是轮询模型&#xff0c;会大…

服务器之poll

poll服务器方法采用将监听端口用数组存放起来&#xff0c;这样就不需要轮询的监听整个文件描述符了 #include <poll.h> int poll(struct pollfd *fds, nfds_t nfds, int timeout);struct pollfd {int fd; /* 文件描述符 */short events; /* 监控的事件 */short revents; …

Mysql数据库简单使用(二)

Mysql导入.sql文件 进入数据库&#xff08;要导入的数据库&#xff09;数据库中有要导入.sql文件名的数据库&#xff0c;没有则新建。source 路径文件名souce /home/robot/csql.sql 数据库文件.sql文件放在/home/robot目录下 按照时间删除数据库数据 DELETE FROM 表名 WHERE 时…

Python3集合

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

Python3条件判断

if语句&#xff1a; Python中if语句的一般形式如下&#xff1a; if condition_1:statement_block_1 elif condition_2:statement_block_2 else:statement_block_3 if语句关键词&#xff1a; if – elif – else 注意&#xff1a; 每个条件后面要使用冒号:使用缩进来划分语句块&…

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;…

Pythton3实例

计算1-100之和 #add.py n 0 sum 0 for n in range(0,101):sum n print(sum) 实现99乘法法则 #mul.py i 1 while i < 9:j 1while j < i:mut j*iprint("%d * %d %d"%(j,i,mut),end" ")j 1print(" ")i 1 运算结果: robotubuntu:~/wa…

Python3函数

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

epoll函数

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

epoll事件模型

事件模型 EPOLL事件有两种模型&#xff1a; Edge Triggered (ET) 边缘触发只有数据到来才触发&#xff0c;不管缓存区中是否还有数据。 Level Triggered (LT) 水平触发只要有数据都会触发。 思考如下步骤&#xff1a; 假定我们已经把一个用来从管道中读取数据的文件描述符(RFD)…

epoll反应堆模型代码

libevent函数库核心思想 /*** epoll_loop.c ***/ #include<stdio.h> #include<sys/epoll.h> #include<sys/socket.h> #include<arpa/inet.h> #include<fcntl.h> #include<unistd.h> #include<errno.h> #include<string.h> #in…

UDP广播

广播是在局域网之间的一对多的通信方式&#xff0c;使用的udp协议 /*** client.c ***/ #include <stdio.h> #include <unistd.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h>#define SERVER_PORT 8000 #define MAXLINE…

UDP组播

多播(组播) 组播组可以是永久的也可以是临时的。组播组地址中&#xff0c;有一部分由官方分配的&#xff0c;称为永久组播组。永久组播组保持不变的是它的ip地址&#xff0c;组中的成员构成可以发生变化。永久组播组中成员的数量都可以是任意的&#xff0c;甚至可以为零。那些没…

Python3数据结构

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

sed、awk工具

ed sed意为流编辑器&#xff08;Stream Editor&#xff09;&#xff0c;在Shell脚本和Makefile中作为过滤器使用非常普遍&#xff0c;也就是把前一个程序的输出引入sed的输入&#xff0c;经过一系列编辑命令转换为另一种格式输出。sed和vi都源于早期UNIX的ed工具&#xff0c;所…

C语言正则表达式

POSIX规定了正则表达式的C语言库函数&#xff0c;详见regex(3)。我们已经学习了很多C语言库函数的用法&#xff0c;读者应该具备自己看懂man手册的能力了。本章介绍了正则表达式在grep、sed、awk中的用法&#xff0c;学习要能够举一反三&#xff0c;请读者根据regex(3)自己总结…