python进阶教程之词典、字典、dict
基础教程介绍了基本概念,特别是对象和类。
进阶教程对基础教程的进一步拓展,说明Python的细节。希望在进阶教程之后,你对Python有一个更全面的认识。
之前我们说了,列表是Python里的一个类。一个特定的表,比如说nl = [1,3,8],就是这个类的一个对象。我们可以调用这个对象的一些方法,比如 nl.append(15)。
我们要介绍一个新的类,词典 (dictionary)。与列表相似,词典也可以储存多个元素。这种储存多个元素的对象称为容器(container)。
基本概念
常见的创建词典的方法:
>>>dic = {'tom':11, 'sam':57,'lily':100}
>>>print type(dic)
词典和表类似的地方,是包含有多个元素,每个元素以逗号分隔。但词典的元素包含有两部分,键和值,常见的是以字符串来表示键,也可以使用数字或者真值来表示键(不可变的对象可以作为键)。值可以是任意对象。键和值两者一一对应。
比如上面的例子中,‘tom'对应11,'sam对应57,'lily'对应100
与表不同的是,词典的元素没有顺序。你不能通过下标引用元素。词典是通过键来引用。
>>>print dic['tom']
>>>dic['tom'] = 30
>>>print dic
构建一个新的空的词典:
>>>dic = {}
>>>print dic
在词典中增添一个新元素的方法:
>>>dic['lilei'] = 99
>>>print dic
这里,我们引用一个新的键,并赋予它对应的值。
词典元素的循环调用
dic = {'lilei': 90, 'lily': 100, 'sam': 57, 'tom': 90}
for key in dic:
print dic[key]
在循环中,dict的每个键,被提取出来,赋予给key变量。
通过print的结果,我们可以再次确认,dic中的元素是没有顺序的。
词典的常用方法
>>>print dic.keys() # 返回dic所有的键
>>>print dic.values() # 返回dic所有的值
>>>print dic.items() # 返回dic所有的元素(键值对)
>>>dic.clear() # 清空dic,dict变为{}
另外有一个很常用的用法:
>>>del dic['tom'] # 删除 dic 的‘tom'元素
del是Python中保留的关键字,用于删除对象。
与表类似,你可以用len()查询词典中的元素总数。
>>>print(len(dic))
总结
词典的每个元素是键值对。元素没有顺序。
dic = {'tom':11, 'sam':57,'lily':100}
dic['tom'] = 99
for key in dic: ...
del, len()
相关推荐
-
php+xml实现在线英文词典查询的方法
本文实例讲述了php+xml实现在线英文词典查询的方法.分享给大家供大家参考.具体如下: 这里的xml相当于一个数据库.实现:查询某个英文单词,输出它的中文意思. xml文件(数据库):words.xml如下: 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <words> <word> <en>boy</en> <ch>男孩</ch
-
Android组件WebView编写有道词典小案例分享
最近学习了WebView组件,写了一个有道词典的小案例,分享给大家,供大家参考,具体内容如下 效果图: 源码下载:https://coding.net/u/gxs1225/p/YouDaoDictionary/git 代码如下: 布局 activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schema
-
Android 有道词典的简单实现方法介绍
首先看程序界面如下! 1.布局文件: 复制代码 代码如下: <AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" >
-
适合初学者开发的C#在线英汉词典小程序
今天写了一个英汉词典小程序,我加了好多注释,适合初学者一起参考,哪里写的不好请帮忙指出,一起学习进步. 这里用到了,泛型,泛型字典,一些控件的操作,split的应用,数组的应用,时间间隔,linkLabel的使用. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using
-
PHP制作百度词典查词采集器
百度dict 采集样本 写的采集百度dict词典翻译后的所有结果数据,当然附带了13.5w单词库和采集简单的案例,这里我把写出的主要类dict.class.php放出来,项目地址http://github.com/widuu/baidu_dict,有需要的直接fork就可以了~么么哒,这东西用的人很少,所以有用的兄弟拿走了哈~ <?php /** * dict.class.php 采集百度词典翻译内容 * * @copyright (C) 2014 widuu * @license http:/
-
基于Android的英文词典的实现方法
英文词典是手机中经常使用的应用.因此,在本文将结合Android来讨论如何实现一个Android版的英文词典.实现英文词典的方法很多.在本文使用了SQLite数据库来保存英文单词信息.系统通过SQLite数据库中保存的单词信息来查找到与指定英文对应的中文信息.当然,实现这样一个英文词典需要解决一系列技术问题.例如,如何将保存英文单词信息的数据库文件随程序(apk文件)一起发布:发布后如何打开数据库:如何在输入前几个字母后,在AutoCompleteTextView组件提示列表中显示以所输入字符串
-
使用Python从有道词典网页获取单词翻译
从有道词典网页获取某单词的中文解释. import re import urllib word=raw_input('input a word\n') url='http://dict.youdao.com/search?q=%s'%word content=urllib.urlopen(url) pattern=re.compile("</h2.*?</ul>",re.DOTALL) result=pattern.search(content.read()).gro
-
洪恩在线成语词典小偷程序php版
主要函数是file_get_contents,主程序分两段,跟我一起看过来吧(凡人博客原创代码,转载请注明). 复制代码 代码如下: function escape($str){ preg_match_all('/[\x80-\xff].|[\x01-\x7f]+/',$str,$r); $ar = $r[0]; foreach($ar as $k=>$v){ if(ord($v[0]) < 128) $ar[$k] = rawurlencode($v); else $ar[$k] = '%u
-
php+xml实现在线英文词典之添加词条的方法
本文实例讲述了php+xml实现在线英文词典之添加词条的方法.分享给大家供大家参考.具体如下: 接着上一篇<php+xml实现在线英文词典查询的方法>,这里要添加一个功能,提交英文单词和中文意思,将这些信息添加到xml文档中. xml文件(数据库):words.xml 复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?> <words> <word> <en>
-
python进阶教程之词典、字典、dict
基础教程介绍了基本概念,特别是对象和类. 进阶教程对基础教程的进一步拓展,说明Python的细节.希望在进阶教程之后,你对Python有一个更全面的认识. 之前我们说了,列表是Python里的一个类.一个特定的表,比如说nl = [1,3,8],就是这个类的一个对象.我们可以调用这个对象的一些方法,比如 nl.append(15). 我们要介绍一个新的类,词典 (dictionary).与列表相似,词典也可以储存多个元素.这种储存多个元素的对象称为容器(container). 基本概念 常见的创
-
python使用点操作符访问字典(dict)数据的方法
本文实例讲述了python使用点操作符访问字典(dict)数据的方法.分享给大家供大家参考.具体分析如下: 平时访问字典使用类似于:dict['name']的方式,如果能通过dict.name的方式访问会更方便,下面的代码自定义了一个类提供了这种方法. class DottableDict(dict): def __init__(self, *args, **kwargs): dict.__init__(self, *args, **kwargs) self.__dict__ = self de
-
python 将字符串转换成字典dict的各种方式总结
1)利用eval可以将字典格式的字符串与字典户转 >>>mstr = '{"name":"yct","age":10}' 转换为可以用的字典: >>>eval(mstr), type( eval(mstr) ) {"name":"yct","age":10}, dict 2).JSON到字典转化: >>>dictinfo = json
-
Python自定义一个类实现字典dict功能的方法
如下所示: import collections class Mydict(collections.UserDict): def __missing__(self, key): if isinstance(key, str): raise KeyError(key) return self[str(key)] def __contains__(self, key): return str(key) in self.data def __setitem__(self, key, item): se
-
Python进阶教程之创建本地PyPI仓库
目录 初识pypi仓库 创建本地 PyPI 仓库 安装 pypiserver 上传 Python 安装包 使用私有 PyPI 仓库 总结 初识pypi仓库 pypi仓库 是对第三方库的代码仓管库,如有需要可以从仓库中下载,下载用命令pip install 库名 pip 命令是需要在cmd命令下运行,不能在python环境下使用 创建本地 PyPI 仓库 安装 pypiserver $ mkdir pypiserver $ cd pypiserver $ mkdir ./packages $ mk
-
Python简单定义与使用字典dict的方法示例
本文实例讲述了Python简单定义与使用字典的方法.分享给大家供大家参考,具体如下: #coding=utf8 print ''''' Python中的字典映射数据类型是由键值对构成. python中字典一般以数字或者字符串作为键. Python中字典的值可以是任意类型的Python对象,字典元素用大括号{}包裹. ''' dicDefine={ 'Name':'ewang', 'Age': 28, 'Sex': 'famale', 'BirthDay':'1998/09/1' } print
-
详解python中的json和字典dict
定义 python中,json和dict非常类似,都是key-value的形式,而且json.dict也可以非常方便的通过dumps.loads互转.既然都是key-value格式,为啥还需要进行格式转换? json(JavaScript Object Notation) json:是一种数据格式,是纯字符串.可以被解析成Python的dict或者其他形式. dict:是一个完整的数据结构,是对Hash Table这一数据结构的一种实现,是一套从存储到提取都封装好了的方案.它使用内置的哈希函数来
-
python进阶教程之函数参数的多种传递方法
我们已经接触过函数(function)的参数(arguments)传递.当时我们根据位置,传递对应的参数.我们将接触更多的参数传递方式. 回忆一下位置传递: 复制代码 代码如下: def f(a,b,c): return a+b+c print(f(1,2,3)) 在调用f时,1,2,3根据位置分别传递给了a,b,c. 关键字传递 有些情况下,用位置传递会感觉比较死板.关键字(keyword)传递是根据每个参数的名字传递参数.关键字并不用遵守位置的对应关系.依然沿用上面f的定义,更改调用
-
python 将字符串转换成字典dict
复制代码 代码如下: JSON到字典转化:dictinfo = simplejson.loads(json_str) 输出dict类型 字典到JSON转化:jsoninfo = simplejson.dumps(dict)输出str类型 比如:info = {'name' : 'jay', 'sex' : 'male', 'age': 22}jsoninfo = simplejson.dumps(info)print jsoninfo print type(jsoninfo)
-
python进阶教程之动态类型详解
动态类型(dynamic typing)是Python另一个重要的核心概念.我们之前说过,Python的变量(variable)不需要声明,而在赋值时,变量可以重新赋值为任意值.这些都与动态类型的概念相关. 动态类型 在我们接触的对象中,有一类特殊的对象,是用于存储数据的.常见的该类对象包括各种数字,字符串,表,词典.在C语言中,我们称这样一些数据结构为变量.而在Python中,这些是对象. 对象是储存在内存中的实体.但我们并不能直接接触到该对象.我们在程序中写的对象名,只是指向这一对象的引用(
随机推荐
- ztree获取选中节点时不能进入可视区域出现BUG如何解决
- jQuery使用zTree插件实现可拖拽的树示例
- ubuntu下用dpkg命令行运行deb安装包的方法
- Linux下connect超时处理(总结)
- Oracle学习记录之使用自定义函数和触发器实现主键动态生成
- 优化Oracle库表设计的若干方法
- js将long日期格式转换为标准日期格式实现思路
- JSP和Struts解决用户退出问题
- 不错的10个你未必知道的CSS技巧
- JavaScript内存管理介绍
- jQuery 特性操作详解及实例代码
- dmysql自己封装的mysql库
- 使用js判断控件是否获得焦点
- IIS防盗链,防迅雷的唯一方案(safe3if)
- 解决Photoshop CS3在Win 2003下无法安装的解决方法
- DevExpress获取节点下可视区域子节点集合的实现方法
- PHP中如何调用webservice的实例参考
- VS.net VSS时,编译报错:未能向文件“.csproj.FileListAbsolute.txt”写入命令行 对路径 的访问被拒绝。
- shell通过正则匹配ip地址实例代码
- 解决使用export_graphviz可视化树报错的问题