python dict{}和set([])
200 ? "200px" : this.width)!important;}
-->
介绍
dict(dictionary),在其他语言中也称为map,使用键-值(key-value)存储。set和dict类似,也是一组key的集合,但不存储value。字典和set的key都是不允许重复且key不能是列表。
s={'stu1':80,'stu2':90,'stu3':60}
2.查询
查询stu1的分数
>>> s['stu1']
80
>>>
3.修改value
>>> s['stu1']=50
>>> s
{'stu3': 60, 'stu2': 90, 'stu1': 50}
4.增加key
例如增加一个代表学生stu4-stu7的key-value
>>> s['stu4-7']=[40,80,50,60]
>>> s
{'stu3': 60, 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}
注意:key不能是变量(python里面的变量不太容易理解,就简单的理解key不能是list就行),但是value可以是变量(python里面的),value可以是常量、字符串、list、tuple等
>>> s['stu8-9']=(80,50)
>>> s
{'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu1': 50, 'stu4-7': [40, 80, 50, 60]}
读取stu8的分数
>>> s['stu8-9'][0]
80
>>>
5.删除key
要删除一个key,用pop(key)方法,对应的value也会从dict中删除
例如:删除key"stu1"
>>> s.pop('stu1')
50
>>> s
{'stu3': 60, 'stu8-9': (80, 50), 'stu2': 90, 'stu4-7': [40, 80, 50, 60]}
>>> s['stu1']
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
s['stu1']
KeyError: 'stu1'
>>>
6.判断一个key是否存在
方法1:直接打印输出,如果key不存在会返回错误
>>> s['stu1']
Traceback (most recent call last):
File "<pyshell#14>", line 1, in <module>
s['stu1']
KeyError: 'stu1'
>>>
方法2:通过dict提供的get方法,如果key不存在,可以返回None,或者自己指定的value:
s.get('stu1')
可以用print打印出None
>>> print (s.get('stu1'))
None
>>>
可以自己指定key不存在返回的值,例如返回1,但是返回值必须是整形
>>> s.get('stu1',1)
1
方法3:通过in判断key是否存在,不存在返回Flase
>>> 'stu1' in s
False
>>> 'stu2' in s
True
二、set([])
set和dict类似,也是一组key的集合,但不存储value;set和dict一样key不允许是list且key不能重复。
1.创建set
要创建一个set,需要提供一个list作为输入集合,注意set的固定格式,set([]),在set()中加入list
>>> se=set(['a','b','c'])
>>> se
{'b', 'c', 'a'}
注意:list中的每一个元素都是一个key,但是元素不能是list可以是常量、字符串、tuple、浮点型
2.读取key
>>> se
{'b', 'c', 'a'}
set不支持索引,所以没办法像list和tuple那样根据索引获取指定的key,比如se[0]会返回错误
4.增加key
通过add(key)方法可以添加元素到set中,可以重复添加,但不会有效果
>>> se.add('d')
>>> se
{'b', 'c', 'd', 'a'}
>>>
5.删除key
通过remove(key)方法可以删除元素
>>> se.remove('c')
>>> se
{'b', 'd', 'a'}
>>>
6.设置一个list key
>>> se.add(['e','f'])
Traceback (most recent call last):
File "<pyshell#74>", line 1, in <module>
se.add(['e','f'])
TypeError: unhashable type: 'list'
返回错误:没有对应的list哈希表
注意:这里的['e','f']指的是一个元素(key),只不过它是list元素,set([])中的key不支持list.
总结
从dict{}和set([])的返回key可以发现它们是没有固定的顺序的。但是key不能是list。dict的value可以是任何已知的类型值。
|
备注: 作者:pursuer.chen 博客:http://www.cnblogs.com/chenmh 本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。 《欢迎交流讨论》 |
python dict{}和set([])的更多相关文章
- Python dict operation introduce
字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值(key=>value)对用冒号(:)分割,每个对之间用逗号(,)分割,整个字典包括在花括号({})中 ,格式如下所示: d = ...
- Python dict(或对象)与json之间的互相转化
Python dict(或对象)与json之间的互相转化 原文转载自 1.JSON:JavaScript 对象表示法,是轻量级的文本数据交换格式,独立于语言,平台 2.JSON 语法规则 数据在名称/ ...
- python & dict & switch
python & dict & switch python 中是没用switch语句的,这应该是体现python大道至简的思想,python中一般多用字典来代替switch来实现. # ...
- Python dict() 函数
Python dict() 函数 Python 内置函数 描述 dict() 函数用于创建一个字典. 语法 dict 语法: class dict(**kwarg) class dict(mappi ...
- python dict乱码如何解决
定义字典并直接输出,结果输出结果中文是乱码展示 d={'name':'lily','age':18,'sex':'女','no':1121} print d 输出结果: {'age': 18, 'no ...
- 转:python dict按照value 排序
我们知道Python的内置dictionary数据类型是无序的,通过key来获取对应的value.可是有时我们需要对dictionary中 的item进行排序输出,可能根据key,也可能根据value ...
- (翻译)如何对python dict 类型按键(keys)或值(values)排序
如何对dict类型按键(keys)排序(Python 2.4 或更高版本): mydict = {'carl':40, 'alan':2, 'bob':1, 'danny':3} for key in ...
- Python dict 按键和值排序
python 字典(dict)的特点就是无序的,按照键(key)来提取相应值(value),如果我们需要字典按值排序的话,那可以用下面的方法来进行:1 下面的是按照value的值从大到小的顺序来排序. ...
- Python dict和set的实现原理
在python的dict中间进行查找某个key操作时,查找所需时间不会随着dict中键值对数量增多而变长,(时间复杂度为O(1))但是list中就会(时间复杂度为O(N)),这是因为list查询实现的 ...
随机推荐
- Java 并发基础
Java 并发基础 标签 : Java基础 线程简述 线程是进程的执行部分,用来完成一定的任务; 线程拥有自己的堆栈,程序计数器和自己的局部变量,但不拥有系统资源, 他与其他线程共享父进程的共享资源及 ...
- bzoj1054: [HAOI2008]移动玩具
hash+bfs:要注意特殊情况.(似乎连sort.lower_bound都不用数据小直接判重了... #include<cstdio> #include<cstring> # ...
- UVa 11054 Wine trading in Gergovia【贪心】
题意:给出n个等距离的村庄,每个村庄要么买酒,要么卖酒,买酒和卖酒的总量相等, 把k个单位的酒从一个村庄运送到相邻的村庄,需要耗费k个单位劳动力,问怎样运送酒使得耗费的劳动力最少 买 卖 ...
- <pages validateRequest="false"/>在.net4.0中无效的问题
再web.config中设置<pages validateRequest="false"/>在.net4.0中无效的问题 解决方案: <system.web> ...
- Linux中 干掉原来的PHP方法
干掉原来的PHP方法: 查看php版本命令:#php -v这个命令是删除不干净的#yum remove php因为使用这个命令以后再用#php -v还是会看到有版本信息的..... 必须强制删除#rp ...
- 零基础学通C语言,福利来啦!!!!zfhl.ke.qq.com
- java 异常java.lang.UnsupportedOperationException
在项目中采用一个枚举的集合,本人采用Collections中的空集合Collections.emptyList()在添加时发生异常: 常见集合如下: private List<VacationC ...
- 给Java新手的一些建议----Java知识点归纳(Java基础部分)
写这篇文章的目的是想总结一下自己这么多年来使用java的一些心得体会,主要是和一些java基础知识点相关的,所以也希望能分享给刚刚入门的Java程序员和打算入Java开发这个行当的准新手们,希望可以给 ...
- solr4.2 solrconfig.xml配置文件简单介绍
对于solr4.x的每个core有两个很重要的配置文件:solrconfig.xml和schema.xml,下面我们来了解solrconfig.xml配置文件. 具体很详细的内容请细读solrcofi ...
- android学习笔记六
Android中Activity的Intent大全 Api Level 3: (SDK 1.5) android.intent.action.ALL_APPS android.intent.actio ...