python数据类型-----字典

今天来总结下python3.4版本字典的一些操作方法。

 

  字典是Python里面一种无序存储结构,存储的是键值对 key - value。关键字应该为不可变类型,如字符串、整数、包含不可变对象的元组。字典的创建很简单,
用 d = {key1 : value2, key2 : value2}的形式就可以创建一个新的字典,当然也可以通过 dict 接受一个含有键,值的序列对或者关键字参数来创建字典。
键可以是多种类型,但键是唯一的不重复的,值可以不唯一

 

字典: 

  1、in语句,判断一个元素(键)是否在一个字典里
  2、not 语句表示对后面的否定
  3、len 可以检测字典的元素个数
  4、max 可以返回最大元素,min 返回最小元素
  5、len(dict)返回dict的长度
  6、del dict[key]删除字典dict中键为key的元素,如果key不存在,则引起KeyError类型错误

 

 

字典方法:  

  1、d.clear() 清空字典d
  2、d.copy() 对字典 d 进行浅复制,返回一个和d有相同键值对的新字典
  3、d.get( x [ , y]) 返回字典 d 中键 x 对应的值,键 x 不存在的时候返回 y, y 的默认值为None
  4、d.items() 将字典 d 中所有键值对以dict_items的形式返回(Python 2中d.iteritems() 返回一个针对键值对的迭代器对象,Python 3中没有 iteritems 方法了)
  5、d.pop( x[, default]) ) 返回给定键 x 对应的值,并将该键值对从字典中删除,如果x不在字典d,则返回default;若x既不在d中,同时default未设置,则引起KeyError类型错误
  6、d.popitem( ) 返回并删除字典 d 中随机的键值对
  7、d.setdefault( x, [ , y ] ) 返回字典 d 中键 x 对应的值,若键 x 不存在,则返回 y, 并将 x : y 作为键值对添加到字典中,y 的默认值为 None
  8、d.update( x ) 将字典 x 所有键值对添加到字典 d 中(不重复,重复的键值对用字典 x 中的键值对替代字典 d 中)
  9、d.keys() 将字典 d 中所有的键以dict_keys形式返回一个针对键的迭代器对象
  10、d.values( ) 将字典里所有的值以dict_values 的形式返回针对字典d里所有值的迭代器对象
  11、d.fromkeys(iterable, value=None)返回一个新的字典,键来自iterable,value为键值

 1 >>> d = {'a':1, 'b':2} 
 2 >>> d 
 3 {'b': 2, 'a': 1} 
 4 >>> L = [('Jonh',18), ('Nancy',19)] 
 5 >>> d = dict(L) #通过包含键值的列表创建 
 6 >>> d 
 7 {'Jonh': 18, 'Nancy': 19} 
 8 >>> T = tuple(L) 
 9 >>> T 
10 (('Jonh', 18), ('Nancy', 19)) 
11 >>> d = dict(T) #通过包含键值的元组创建 
12 >>> d 
13 {'Jonh': 18, 'Nancy': 19} 
14 >>> d = dict(x = 1, y = 3) #通过关键字参数创建 
15 >>> d 
16 {'x': 1, 'y': 3} 
17 >>> d[3] = 'z' 
18 >>> d 
19 {3: 'z', 'x': 1, 'y': 3}
20 
21 
22 >>> d 
23 {3: 'z', 'y': 3} 
24 >>> L1 = [1,2,3] 
25 >>> d.fromkeys(L1) 
26 {1: None, 2: None, 3: None} 
27 >>> {}.fromkeys(L1,'nothing') 
28 {1: 'nothing', 2: 'nothing', 3: 'nothing'} 
29 >>> dict.fromkeys(L1,'over') 
30 {1: 'over', 2: 'over', 3: 'over'}
31 
32 
33 >>> d 
34 {3: 'z', 'x': 1, 'y': 3} 
35 >>> d[3] 
36 'z' 
37 >>> d['x'] 
38 1 
39 >>> d[0] 
40 Traceback (most recent call last): 
41 File "<pyshell#26>", line 1, in <module> 
42 d[0] 
43 KeyError: 0
44 
45 
46 >>> d = {'z': 5, 'x': 1.5, 'y': 3} 
47 >>> d.items() 
48 dict_items([('z', 5), ('x', 1.5), ('y', 3)]) 
49 >>> list(d.items()) 
50 [('z', 5), ('x', 1.5), ('y', 3)] 
51 
52 >>> d.keys() 
53 dict_keys(['z', 'x', 'y']) 
54 >>> for x in d.keys(): 
55 print(x) 
56 z 
57 x 
58 y 
59 
60 >>> d1 = {'x':1, 'y':3} 
61 >>> d2 = {'x':2, 'z':1.4} 
62 >>> d1.update(d2) 
63 >>> d1 
64 {'z': 1.4, 'x': 2, 'y': 3} 
65 
66 >>> d1 
67 {'z': 1.4, 'x': 2, 'y': 3} 
68 >>> d1.values() 
69 dict_values([1.4, 2, 3]) 
70 >>> list(d1.values()) 
71 [1.4, 2, 3]

 

转载于:https://www.cnblogs.com/MrFiona/p/5958888.html

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

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

相关文章

getmodifiers java_java – getModifiers()方法如何计算多个修饰符的值?

TL; DR&#xff1a;它将它们组合在一起形成bit field.要理解这一点,你需要了解二进制如何工作,这类似于十进制 – 让我们从那里开始&#xff1a;1 - public10 - static100 - final那么,101意味着什么&#xff1f;它必须是公共最终的,因为除了单个100和单个1之外,十进制系统中没…

克劳塞维茨与战争论

1. 基本战略 战争是政治的延续&#xff1b; 战争是死亡的盛筵&#xff1b;战争的目的就是消灭敌人&#xff1b;战略包括精神、物质、数学、地理、统计五大要素。战略战术的基本原则。克劳塞维茨认为&#xff0c;数量上的优势在战略战术上都是最普遍的制胜因素。虽然在实际作战时…

促销 java_原始促销 [Java]

JLS在这里不会“提升到更大的数据类型”,因为它不会为转移运算符执行二进制数字提升.这由JLS, Section 15.19涵盖.Unary numeric promotion (5.6.1) is performed on each operand separately. (Binary numeric promotion (5.6.2) is not performed on the operands.)一元数字促…

js基础一

## js三种引入方式&#xff08;内嵌&#xff08;用得少&#xff09;、内联、外联&#xff09;1、内联&#xff1a;&#xff08;写在head标签里&#xff09;<script type"text/javascript"> console.log("hello world");</script>2、外联&#…

java 2分钟_java开发中的那些事(5)--------一点经历,败给2分钟的2个小时

特意记下这个经历&#xff0c;这个让我感慨万千又斗志昂扬的一次经历&#xff0c;这是经验&#xff0c;也是生活。故事的始末是这种&#xff0c;先给大家上几句代码&#xff0c;如今身在家中&#xff0c;仅仅能凭记忆敲打几行&#xff0c;大致意思倒不会错&#xff1a;{field:c…

用户登录和注册的功能

<form action"logincheck.php" method"post"> 用户名&#xff1a;<input type"text" name"username" /> <br /> 密码&#xff1a;<input type"password" name"password" /&g…

java cygwin 乱码_windows10乱码怎么解决

如 图组360没有乱码 但字体明显不对字体不正常更明显了第三方浏览器要么乱码 要么根本打不开安装java时也是乱码 要不是我安装过 我根本不知道按钮在哪里eclipse也逃脱不了显示错误的命运(ps:第一行代码 或是说注释)酷狗音乐就更惨了这是cmd命令执行 dir /?时得到的帮助信息 我…

【题目描述】 商店里出售n种花&#xff0c;现打算购买m支花&#xff0c;每种花最多购买1支&#xff0c;询问有多少种购买方案&#xff0c;输出方案数 mod p的值。 【输入描述】 输入三个整数n、m、p。 【输出描述】 输出一个整数&#xff0c;表示答案。 【输入样例】 4 2 5 【输…

java employee list_JSP中List中的$ {employee.id}抛出java.lang.NumberFormat

我有一个JSP页面&#xff0c;当List从下面的方法中显示时&#xff0c;它可以正常工作。RequestMapping(value { "getAllEmployees", "/" })public ModelAndView getAllEmployees() {// logger.info("Getting the all Employees.");List employe…

H5入门-xhtml+css2-第01节

<!-- 声明版本号&#xff0c;DOCTYPE html是html5版本 --><!DOCTYPE html><!-- 声明网页语言 en-英文 zh-中文 zh-cn中文 --><html lang"en"><!-- head 网页头部信息 --><head><!-- 声明网页的编码格式 --><meta chars…

java怎么打增量包_eclipse实现JavaWeb应用增量打包

很多情况下&#xff0c;项目是不允许全量发布的&#xff0c;所以你得把有做修改的文件一个个挑出来&#xff0c;如果有成千上百的文件&#xff0c;你是不是要头大了? 以下方法应该可以让你得到解救!前提是你是用装有svn plugin的eclipse上做开发。第一步&#xff0c;用svn生成…

eclipse调整字体大小

window->preferences->general->appearance->colors and fonts-> 双击Text Font 就调整字体大小了转载于:https://www.cnblogs.com/H-K-Home/p/5973747.html

java 定时器框架_java定时器

java定时器什么是Java定时器&#xff1f;Java 定时器就是在给定的间隔时间执行自己的任务; Java实现定时器有以下几种:通过Timer来实现定时任务Timer 是来自 java.util.Timer指定时间执行任务/*** author spp* date 2020-10-14 09:04**/public class TimerTest {public static …

Flume之核心架构深入解析

我们一起来了解Source、Channel和Sink的全链路过程。 一、Flume架构分析 这个图中核心的组件是&#xff1a; Source&#xff0c;ChannelProcessor&#xff0c;Channel&#xff0c;Sink。他们的关系结构如下&#xff1a; Source {ChannelProcessor {Channel ch1Channel ch2……

java连接cdh集群_有一台电脑需要通过beeline的方式连接到CDHclouderahadoop集群,提示报错。...

有一台电脑需要通过beeline的方式连接到CDHclouderahadoop集群&#xff0c;提示报错。码农的苦恼2020-02-24 10:25:48目前客户端服务器已经开通了3000-60000的端口访问权限&#xff0c;请问还需要开通哪些权限。谢谢&#xff01;17/11/14 09:19:40 WARN conf.HiveConf: DEPRECA…

java中继承applet类_Java - 33 Java Applet基础

Java Applet基础applet是一种Java程序。它一般运行在支持Java的Web浏览器内。因为它有完整的Java API支持,所以applet是一个全功能的Java应用程序。如下所示是独立的Java应用程序和applet程序之间重要的不同&#xff1a;Java中applet类继承了 java.applet.Applet类Applet类没有…

zabbix 自定义探索规则发现服务器上面的kvm虚拟机和对应的网卡

安装完zabbix服务器之后 只有两个探索规则模版&#xff0c;挂载点探索和网卡探索 场景描述&#xff1a;想使用zabbix监控kvm虚拟机的网卡的流量情况&#xff0c; 获取虚拟机和网卡对应关系 虚拟机 S-1 virsh domiflist S-1 # 列出虚拟机的网卡 &#xff08;vnet*&#xff09; …

Cordova(PhoneGap) 环境搭建与基础

Cordova(PhoneGap) 创建步骤&#xff1a;官方Guide 环境准备 安装 Node.jsnodejs.org安装 gitgit-scm.com (bin目录添加到path)安装 cordova 执行命令 npm install -g cordova创建,移除项目 执行命令cordova create CordovaStudy xy.study.cordova CordovaStudy 参数&#xff1…

linux 安装mysql5.7.12_Linux系统上安装mysql5.7.12

在Linux上安装mysql环境&#xff1a;windows7虚拟机&#xff1a;Oracle VMVirtualBoxLinux: ubuntukylin-14.04.1-amd64.isomysql:5.7.12一.环境准备step1:安装虚拟机step2:修改宿主机BIOS配置&#xff0c;详细步骤见文章&#xff1a;http://blog.csdn.net/lanonola/article/de…

Swift泛型Protocol对比C#泛型Interface

本篇纯属抬杠之作&#xff0c;之前我们提到了Swift的泛型Protocol使用associatedtype关键字&#xff0c;而不是使用<Type>语法的泛型参数。这其中有什么好处呢&#xff1f; 我就这个问题搜索了一些回答&#xff0c;大体上提到两点&#xff1a; <Type>语法对Protoco…