定义一个字典
>>> d = {"server":"mpilgrim", "database":"master"} 1 >>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["server"] 2 'mpilgrim' >>> d["database"] 3 'master' >>> d["mpilgrim"] 4Traceback (innermost last):
File "<interactive input>", line 1, in ?
KeyError: mpilgrim
首先,我们创建了一个拥有两个元素的新字典,并将其赋值给变量 d。每一个元素都是一个键-值对,整个元素集合用大括号括起来。
server 是一个键字,它所关联的值为 mpilgrim,用 d["server"] 来引用。
database 是一个键字,它所关联的值为 master,用 d["database"] 来引用。
你可以通过键字来得到值,但是不能通过值得到键字。所以 d["server"] 为 mpilgrim,但是使用 d["mpilgrim"] 会引发一个异常,因为 mpilgrim 不是一个键字。
修改一个字典
>>> d {'server': 'mpilgrim', 'database': 'master'} >>> d["database"] = "pubs" 1 >>> d {'server': 'mpilgrim', 'database': 'pubs'} >>> d["uid"] = "sa" 2 >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'}
不能在一个字典中有重复的键字。给一个存在的键字赋值会抹掉原来的值。
可以在任何时候加入新的键-值对。这种语法同修改存在的值一样。(是的,它可能某天会给你带来麻烦,你可能认为增加了新值,但实际上只是反复地修改了同样的值,因为你的键字没有按照你的想象改变。)
注意新的元素(键字为 uid,值为 sa)出现在字典中间。实际上,它只不过是一种巧合,在第一个例子中的元素看上去是有序的。现在它们看上去无序了则更是一种巧合。
Note
字典没有元素顺序的概念。说元素顺序乱了是不正确的,它们只是简单的无序。这是一个重要的特性,它会在你想要以一种特定的,可重复的顺序(象以键字的字母表顺序)存取字典元素的时候骚扰你。有一些实现的方法,它们只是没有加到字典中去。
在字典中混用数据类型
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'pubs'} >>> d["retrycount"] = 3 1 >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d[42] = "douglas" 2 >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3}
字典不是只用于字符串。字典的值可以是任意数据类型,包括字符串,整数,对象,或者甚至其它的字典。在一个单个字典里,字典的值并不需要全都是同一数据类型,可以根据需要混用和配匹。
字典的关键字要严格一些,但是它们可以是字符串,整数和几种其它的类型(后面还会谈到这一点)。也可以在一个字典中混用和配匹关键字。
从字典中删除元素
>>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 42: 'douglas', 'retrycount': 3} >>> del d[42] 1 >>> d {'server': 'mpilgrim', 'uid': 'sa', 'database': 'master', 'retrycount': 3} >>> d.clear() 2 >>> d {}
del 允许你根据键字将单个元素从字典中删除。
clear 会删除一个字典中所有元素。注意空的大括号所表示的集合说明一个字典没有元素。
字符串是大小写敏感
>>> d = {} >>> d["key"] = "value" >>> d["key"] = "other value" 1 >>> d {'key': 'other value'} >>> d["Key"] = "third value" 2 >>> d {'Key': 'third value', 'key': 'other value'}
将一个值赋给一个存在的字典关键字只是简单的用新值替换旧值。
这样做不会将一个值赋给一个存在的字典关键字,因为在Python中字符串是大小写敏感的,所以 'key' 与 'Key' 是不同的。这样就在字典中生成了一个新的键/值对。对你来说可能差不多,但对于Python来说,完全是不同的。
如何访问字典中的值:
>>> dict2 = {'name':'earth','port':80} >>> for key in dict2.keys(): ... print 'key=%s,value=%s' %(key,dict2[key]) ... key=name,value=earth key=port,value=80 >>> for key in dict2: ... print 'key=%s,value=%s' %(key,dict2[key]) ... key=name,value=earth key=port,value=80
获取字典某个元素值:
>>> dict2['name'] 'earth' >>> print 'host %s is running on port %d' %(dict2['name'],dict2['port']) host earth is running on port 80
检查字典中是否有某个键的方法 has_key()或in,not in
>>> 'name' in dict2 True >>> 'server' in dict2 False >>> 'name' in dict2 True >>> dict2['name'] 'earth' >>> dict2.has_key('server') False >>> dict2.has_key('name') True
一个字典中混用数字和字符串的例子:
>>> dict3 = {} >>> dict3[1] = 'abc' >>> dict3['1'] = 3.14159 >>> dict3[3.2] = 'xyz' >>> dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz'}
整体赋值:
>>> dict3 = {'1': 3.14159, 1: 'abc', 3.2: 'xyz',33:'hehe'} >>> dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz', 33: 'hehe'}
更新字典:
>>> dict2['name'] = 'venus' >>> dict2['port'] = 6969 >>> dict2['arch'] = 'sunos5' >>> print 'host %(name)s is running on port %(port)d' %dict2 host venus is running on port 6969
删除字典元素和字典
>>> dict2 {'arch': 'sunos5', 'name': 'venus', 'port': 6969} >>> del dict2['name'] >>> dict2 {'arch': 'sunos5', 'port': 6969} >>> dict2.clear() >>> dict2 {} >>> del dict2 >>> dict2 Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'dict2' is not defined >>> dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz', 33: 'hehe'} >>> dict3.pop(33) 'hehe' >>> dict3 {'1': 3.14159, 1: 'abc', 3.2: 'xyz'}
注:避免使用内建对象名字作为变量的标识符
类似: dict,list,file,bool,str,input,len
本文向大家介绍python基础知识小结之集合,包括了python基础知识小结之集合的使用技巧和注意事项,需要的朋友参考一下 集合 特点:集合对象是一组无序排列的可哈希的值:集合成员可以做字典的键,与列表和元组不同,集合无法通过数字进行索引。此外,集合中的元素不能重复。 定义 应用:去重 常用操作 集合支持一系列标准操作,包括并集|、交集&、差集-和对称差集^ 子集< <=及超集> >= 增删,清
本文向大家介绍jQuery基础知识小结,包括了jQuery基础知识小结的使用技巧和注意事项,需要的朋友参考一下 1、基础 jquery对象集: $():jquery对象集合 获取jquery对象集中的元素: 使用索引获取包装器中的javascript元素:var temp = $('img[alt]')[0] 使用jquery的get方法获取jquery对象集中的javasc
对前端 HTML、CSS、JS 等基础知识做的整理和小结,以及一些相关面试问题的总结。ES5中基本数据类型有五种。
本文向大家介绍Python语言的12个基础知识点小结,包括了Python语言的12个基础知识点小结的使用技巧和注意事项,需要的朋友参考一下 python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序、去重,字典排序,字典、列表、字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进制转换,Python调用系统命令或者脚本,Python 读写
本文向大家介绍Python基础知识点 初识Python.md,包括了Python基础知识点 初识Python.md的使用技巧和注意事项,需要的朋友参考一下 Python简介 Python的历史 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。 1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面又出现了Java和C#实现的版本J
基础知识 基于 ruby 写的 官网文档:https://www.elastic.co/guide/en/logstash/5.2/first-event.html 如果是通过网络来收集,并不需要所有机子都装,但是如果是要通过读取文件来收集,那文件所在的那个机子就的安装 配置文件的写法格式:https://www.elastic.co/guide/en/logstash/5.2/configura
这些基础知识简单了解一下就可以了,Linux 用的多了 就会慢慢熟悉理解了。 快捷键表 Ctrl键是终端用户常用的按键,但大多数触摸键盘都没有这个按键,因此 Termux 使用音量减小按钮来模拟Ctrl键。 例如,在触摸键盘上按音量减小+ L就相当于是键盘上按Ctrl + L的效果一样,达到清屏的效果。 Ctrl + A -> 将光标移动到行首 Ctrl + C -> 中止当前进程 Ctrl +
什么是 Logstash?为什么要用 Logstash?怎么用 Logstash? 本章正是来回答这个问题,或许不完整,但是足够讲述一些基础概念。跟着我们安装章节一步步来,你就可以成功的运行起来自己的第一个 logstash 了。 我可能不会立刻来展示 logstash 配置细节或者运用场景。我认为基础原理和语法的介绍应该更加重要,这些知识未来对你的帮助绝对更大! 所以,认真阅读他们吧!