当前位置: 首页 > 编程日记 > 正文

Python字典部分源码分析,字典是无序的

1 def clear(self): # real signature unknown; restored from __doc__
2         """ D.clear() -> None.  Remove all items from D. """
3         pass
1 #练习1、清空字典(置空)
2 li = {"key1":"value1","key2":"value2"}
3 li.clear()     #清空所有
4 print(li)
5 #执行结果:
6 {}
1 def copy(self): # real signature unknown; restored from __doc__
2         """ D.copy() -> a shallow copy of D """
3         pass
1 #练习2、浅拷贝
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 dd = li.copy()    #浅拷贝
4 print(li)
5 print(dd)
6 #执行结果:
7 {'key2': 'value2', 'key3': 'value3', 'key1': 'value1'}
8 {'key2': 'value2', 'key3': 'value3', 'key1': 'value1'}
1  @staticmethod # known case
2     def fromkeys(*args, **kwargs): # real signature unknown
3         """ Returns a new dict with keys from iterable and values equal to value. """
4         pass
1 #练习3、迭代字符串生成同一值,放到新字典
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 xin = li.fromkeys("key1","444")
4 print(xin)
5 aa = li.fromkeys("ttb","value1")  #分别迭代字符串生成同一个值,放在新字典中,与原字典好像没什么关系
6 print(aa)
7 #执行结果:
8 {'1': '444', 'y': '444', 'e': '444', 'k': '444'}
9 {'b': 'value1', 't': 'value1'}
1 def get(self, k, d=None): # real signature unknown; restored from __doc__
2         """ D.get(k[,d]) -> D[k] if k in D, else d.  d defaults to None. """
3         pass
1 #练习4、获取指定键的值
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 aa = li.get("key2")    #获取指定键的值
4 print(aa)
5 #执行结果
6 value2
1 def items(self): # real signature unknown; restored from __doc__
2         """ D.items() -> a set-like object providing a view on D's items """
3         pass
1 #练习5、获取字典所有内容
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 aa = li.items()    #获取字典所有
4 print(aa)
5 #执行结果:
6 dict_items([('key1', 'value1'), ('key3', 'value3'), ('key2', 'value2')])
1 def keys(self): # real signature unknown; restored from __doc__
2         """ D.keys() -> a set-like object providing a view on D's keys """
3         pass
1 练习6、获取字典中所有键
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 aa = li.keys()    #获取字典所有键
4 print(aa)
5 #执行结果:
6 dict_keys(['key2', 'key3', 'key1'])
1 def pop(self, k, d=None): # real signature unknown; restored from __doc__
2         """
3         D.pop(k[,d]) -> v, remove specified key and return the corresponding value.
4         If key is not found, d is returned if given, otherwise KeyError is raised
5         """
6         pass
1 #练习7、删除指定键
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 aa = li.pop("key2")    #删除指定键,连带删除值
4 print(li)
5 #执行结果
6 {'key1': 'value1', 'key3': 'value3'}
1 def popitem(self): # real signature unknown; restored from __doc__
2         """
3         D.popitem() -> (k, v), remove and return some (key, value) pair as a
4         2-tuple; but raise KeyError if D is empty.
5         """
6         pass
1 #练习8、随机删除键值
2 li = {"key1":"value1","key2":"value2","key3":"value3"}
3 aa = li.popitem()    #随机删除指定键,连带删除值
4 print(li)
5 #执行结果:()随机删掉一个
6 {'key3': 'value3', 'key1': 'value1'}
1 def setdefault(self, k, d=None): # real signature unknown; restored from __doc__
2         """ D.setdefault(k[,d]) -> D.get(k,d), also set D[k]=d if k not in D """
3         pass
 1 #练习9、输出指定键值,键不存在则加入字典
 2 li = {"key1": "value1", "key2": "value2", "key3": "value3"}
 3 aa = li.setdefault("key1","111")  # 键存在字典中时,相当于li.get("key1"),不管后面加什么都没影响
 4 print(aa)
 5 bb = li.setdefault("kkk","111")   #键不存在时,输入值,并且该键值会加入到字典中
 6 print(bb)
 7 print(li)
 8 执行结果:
 9 value1
10 111
11 {'key2': 'value2', 'key1': 'value1', 'kkk': '111', 'key3': 'value3'}
1 def update(self, E=None, **F): # known special case of dict.update
2         """
3         D.update([E, ]**F) -> None.  Update D from dict/iterable E and F.
4         If E is present and has a .keys() method, then does:  for k in E: D[k] = E[k]
5         If E is present and lacks a .keys() method, then does:  for k, v in E: D[k] = v
6         In either case, this is followed by: for k in F:  D[k] = F[k]
7         """
8         pass
 1 #练习10、更新字典
 2 li = {"key1": "value1", "key2": "value2", "key3": "value3"}
 3 aa = {"key1":"111","key2":"222"}
 4 li.update(aa)      #aa是新的,把新的放进旧的,如果键相同则改变值,如果键不同则直接加入
 5 print(li)
 6 li1 = {"key1": "value1", "key2": "value2", "key3": "value3"}
 7 aa1 = {"key1":"111","key2":"222"}
 8 aa1.update(li1)
 9 print(aa1)
10 #执行结果:
11 {'key3': 'value3', 'key1': '111', 'key2': '222'}
12 {'key3': 'value3', 'key1': 'value1', 'key2': 'value2'}
1 def values(self): # real signature unknown; restored from __doc__
2         """ D.values() -> an object providing a view on D's values """
3         pass
1 #练习11、输出字典所有值
2 li = {"key1": "value1", "key2": "value2", "key3": "value3"}
3 aa = li.values()    #输出字典所有的值
4 print(aa)
5 执行结果:
6 dict_values(['value3', 'value2', 'value1'])

转载于:https://www.cnblogs.com/repo/p/5415045.html

相关文章:

【2011-3】【旋转表格】

Description 小敏是个数学迷,特别擅长加法与除法。老师给他一个问题,有一个22表格,表中有正整数A, B, C 和D,表格和表格值的计算如下:小敏的任务是对给出的表格每次顺时针旋转90度,使旋转后的表格值最大&am…

iOS-FXDanmaku弹幕库介绍、相关技术分享

前言 去年, 2016年, 一大波直播平台在移动端涌出, 直播慢慢步入了人们的视角. 网上如今能够看到各式各样的直播, 如秀场直播、游戏直播、体育直播、娱乐直播等等. 在各种类型的直播中, 弹幕在PC、移动端都几乎成为了标配, 今天在这里主要介绍一下个人开源的iOS弹幕, 以及提前为…

【廖雪峰Python学习笔记】字符串与编码

字符串与编码 三种字符编码 ASCII编码 :计算机由美国人发明,最早只有127个字符编码—— 大小写英文字母、数字和符号Unicode:把中文、日文、韩文等所有语言统一到一套编码中,2-4byte,现代OS和大多数语言都支持utf-8&a…

application

说明: 进行应用级操作.比如:设置提醒框,打开其他应用,显示联网状态,控制状态栏 单例对象, UIApplication *app[UIApplication sharedApplication];常用方法 方法1:设置app图标数字提示信息//设置app图标数字提示信息app.applicationIconBadgeNumber10;//ios8以后需要实现以下方…

博客园2013年4月份第2周源码发布详情

Silk Navigation for ASP.NET源码 2013-4-12 [VS2010]功能介绍:Silk Navigation 微软提供,为构建cross-browser 的Web应用程序,是用ASP.NET MVC3和jQuery的。它是非常简单使用ASP.NET Web窗体构建,从而在一个相当小的&#xff0c…

iOS 静态库封装

静态库和动态库 静态库和动态库存在形式 静态库:以.a 和 .framework为文件后缀名。动态库:以.tbd(之前叫.dylib) 和 .framework 为文件后缀名。 静态库和动态库的区别 静态库:链接时会被完整的复制到可执行文件中,被多次使用就有多…

【廖雪峰Python学习笔记】list tuple dict set

列表元组字典集合创建l [1, ‘a’, [1, 3], True]t (1, )d {‘key’ : ‘value’}s set([1, 2, 4, 2, 1])索引l[1]t[0]d.get(‘key’)/插入l.insert(1, ‘3’) / l.append(‘4’)/d[‘k1’] ‘v1’s.add(‘9’)修改l[0] 4/d[‘k1’] v/移除l.pop(0)/d.pop(‘k1’)s.remo…

响应式布局简明示例

响应式布局简明示例,响应式布局最好同时也是自适应布局,然后再配合css3媒体查询,来达到完美的响应式布局。css3的媒体查询ie9一下是不支持的,这太遗憾了,不过幸运的是有大神已经为前端屌丝们写好了用于IE9以下的媒体查…

iOS - APP任意push新页面那些事

大家都知道,UINavigationController对象有一个方法pushViewController,用来做视图跳转,也是在iOS开发中常用的页面转换方法之一。大多数APP的结构一般都是,使用一个UITabBarController,每个tab上都是一个UINavigationC…

主攻ASP.NET.4.5 MVC4.0之重生:Entity Framework生成实体类步骤(十三)

1.新建一个ASP.NET MVC 4.0 项目 2.安装Entity Framework Power Tools 3.Entity Framework- -RepositoryReverse Engineer Code First 4.Install-Package EntityFramework or Update-Package EntityFramework PM -Repository Install-Package EntityFramework 已安装“EntityFr…

【廖雪峰Python学习笔记】高阶函数

Higher-order function高阶函数映射过滤算法排序算法高阶函数 变量可指向函数 >>> abs # 函数 <built-in function abs> >>> abs(-0) # 函数调用 0 >>> func abs # 变量可指向函数 >>> func(-9) # 调用变量 调用函数 9函数名…

丁贵才130702010042第二次作业

第二次作业 2.9 设有如下语句&#xff0c;请用相应的谓词公式分别把它们表示出来&#xff1a; &#xff08;1&#xff09;有的人喜欢梅花&#xff0c;有的人喜欢菊花&#xff0c;有的人既喜欢梅花有喜欢梅花。 解&#xff1a;定义谓词 P&#xff08;x&#xff09;&#xff1a;x…

SpringMVC @RequestBody接收Json对象字符串

以前&#xff0c;一直以为在SpringMVC环境中&#xff0c;RequestBody接收的是一个Json对象&#xff0c;一直在调试代码都没有成功&#xff0c;后来发现&#xff0c;其实 RequestBody接收的是一个Json对象的字符串&#xff0c;而不是一个Json对象。然而在ajax请求往往传的都是Js…

【iOS】自定义日期选择器

自定义了一个日期选择器&#xff0c;与大家分享一下&#xff0c;期待宝贵建议。 github下载地址&#xff1a;https://github.com/huahua0809/XHDatePicker 下面只是说明一下怎么用&#xff0c;具体实现请下载代码看看&#xff1b; 如果大家觉得这个分享有所帮助的话&#xff0c…

【廖雪峰Python学习笔记】函数式编程

Functional Programming高阶函数返回函数匿名函数装饰器偏函数高阶函数 面向过程的程序设计&#xff1a; 把大段代码拆成函数&#xff0c;通过一层层函数调用&#xff0c;可将复杂任务分解成若干简单的任务函数是面向过程的程序设计的基本单位计算机Computer && 计算c…

asp 随机读取ID之Access

我在用ASP连接access 这个桌面数据库的时候&#xff0c;有时候要随机读取ID&#xff0c;传统的办法是&#xff1a; select top 3 * from tablename order by Rnd(ID) 但这样不行&#xff0c;默认还是按ID排序。 解决办法加上timer() 这个函数 select top 3 * from tablenam…

iOS Plist 文件的 增 删 改

一&#xff1a;Plist 文件的创建 Plist 文件作为我们IOS开发的一种数据存储文件&#xff0c;还是经常会用到的。在看《X-code江湖录》的时候&#xff0c;看到了这一点。自己就写了一下&#xff0c;把写的东西分享出来&#xff01;先看看它的创建&#xff0c;它的创建和我们其他…

Shine Button动画效果 类似Tinder APP的卡片界面

Shine Button动画效果--WCLShineButton 类似太阳动画的button FSPagerView 主要使用UICollectionView实现的优雅的屏幕幻灯片效果&#xff0c;主要用于Banner、产品展示、欢迎引导等。有Swift和OC两个版本。 folding-cell 一个可扩展的具有折叠效果的内容单元格 Cell折叠动效…

【廖雪峰Python学习笔记】面向对象编程OOP

面向对象编程 OOP&#xff1a;Object Oriented Programming程序的基本单元&#xff1a;对象 [ 数据 操作数据的函数] [属性 方法]三大特点&#xff1a;数据封装、继承和多态OPP中的计算机程序&#xff1a; 一系列命令的集合 —— 一组函数顺序执行。函数化大为小&#xff0…

基于 CoreText 实现的高性能 UITableView

来源&#xff1a;伯乐在线 - Hawk0620 如有好文章投稿&#xff0c;请点击 → 这里了解详情 如需转载&#xff0c;发送「转载」二字查看说明 引起UITableView卡顿比较常见的原因有cell的层级过多、cell中有触发离屏渲染的代码&#xff08;譬如&#xff1a;cornerRadius、maskTo…

.net程序员面试题

1&#xff0e; 在web页面中不论显示器的分辨率的大小是800600&#xff0c;还是1024768使得页面都显示在屏幕中间。 答&#xff1a;Margin:auto; 2&#xff0e; 请利用正则表达式验证一个字符串是否为数字串 &#xff08;请用csharp&#xff09;。 1 public static b…

Android深度探索与驱动开发(一)

Android移植可分为两个部分&#xff1a;应用移植和系统移植。应用移植是指将应用程序移植到某一特定硬件平台上。由于不同硬件平台之间的差异&#xff0c;Android SDK API也有可能存在差异&#xff0c;或者将应用程序从低版本Android移植到高版本的Android上。为了保证应用程序…

【廖雪峰Python学习笔记】面向对象高级编程

文章目录为实例和类绑定属性和方法\_\_slots__限制当前class实例&#xff0c;对子类不管用property装饰器&#xff0c;将getter方法变成属性多重继承 —— 一个子类可同时获得多个父类的所有功能[Mixin]定制类枚举类元类为实例和类绑定属性和方法 创建类 class Animal(object…

5分钟 搭建免费个人博客

五分钟倒数已经可以计时了。 三步完成免费个人博客搭建&#xff0c; 这是一篇小白也能看懂的文章&#xff0c;本文主要针对mac OS &#xff0c;Windows 除了软件安装方式和命令有些区别&#xff08;装了git bash也一样&#xff09;&#xff0c;其他基本一样。 你可能会经常看到…

基数排序之算法

一、定义基数排序是一种非比较型整数排序算法&#xff0c;其原理是将整数按位数切割成不同的数字&#xff0c;然后按每个位数分别比较。由于整数也可以表达字符串&#xff08;比如名字或日期&#xff09;和特定格式的浮点数&#xff0c;所以基数排序也不是只能使用于整数。二、…

MyBaties学习记录

typeAliases详解&#xff1a; 类型别名是为 Java 类型设置一个短的名字。它只和 XML 配置有关&#xff0c;存在的意义仅在于用来减少类完全限定名的冗余&#xff1b;&#xff08;也就是为类型设置简称&#xff09; 实例: 通过包名称加上简称调用代替&#xff1b; 注解表示: // …

【廖雪峰Python学习笔记】错误、调试、测试

文章目录错误处理调试单元测试unitcase文档测试错误类型程序编写问题bug – 字符类型错误等用户输入错误 – 输入不符合规定的字符串异常&#xff0c;程序运行时无法预测 – 磁盘满了&#xff0c;无法写 错误处理 错误处理机制&#xff1a;try…except…finally… try运行可…

iOS开发——手势识别器(用手势实现图片旋转和缩小放大)

iOS开发中&#xff0c;除了有关触摸的这组方法来控制用户的手指触控外&#xff0c;还可以用UIGestureRecognize的衍生类来进行判断&#xff0c;方便了开发。 UIGestureRecognize的子类类别有以下几种&#xff1a; UITapGestureRecognizer //轻拍识别器UIPinchGestureRecognize…

直播APP常用动画效果

作者: 落影loyinglin 地址: http://www.jianshu.com/p/a9a201ed3aa8 介绍 记录、总结开发遇到一些问题&#xff0c;大家一起交流学习。 这次带来&#xff0c;对直播APP的常用动画总结。 效果展示 下面是一个很多平台都有的入门豪华礼物动画——烟花。 一个复杂的礼物动画&…

windows8下安装Visual Studio2008

windows8下安装Visual Studio2008是一个比较麻烦的事情&#xff0c;不过经过我3个小时的奋斗终于安装成功了。这是我安装Visual Studio 2008过程中遇到的最复杂的一次。 下面我用图解的方式&#xff0c;一步一步的说明安装Visual Studio2008的过程。 第一步&#xff1a;因为win…