>>> # 字典 用大括号表示, 它是影射类型,相当于java中的Map

>>>
>>> dict1 = {'李宁': '一切皆有可能', '耐克':'Just do it','阿迪达斯':'Impossible is nothing'}
>>> dict1
{'阿迪达斯': 'Impossible is nothing', '李宁': '一切皆有可能', '耐克': 'Just do it'}
>>>
>>> # 根据键取字典的值
>>> dict1['李宁']
'一切皆有可能'
>>>
>>> dict2 = {1:'one',2:'two',3:'three'}
>>> dict2[1]
'one'
>>>
>>> # 空字典
>>> dict3 = {}
>>> dict3
{}
>>> # 除了上面的之外,还有其它创建字典的方式  使用构造创建 字典
>>>
>>> dict4 = dict((('F',70),('i',105),('s',115),('h',104)))
>>> dict4
{'s': 115, 'F': 70, 'h': 104, 'i': 105}
>>>
>>> # 用参数的形式创建
>>>
>>> dict5= dict(黄红义='尿频、尿急、尿不净',杨伟='伟哥')
>>> dict5
{'黄红义': '尿频、尿急、尿不净', '杨伟': '伟哥'}
>>>
>>> # 如果键存在就覆盖,如果不存在就添加,与java的Map一样
>>> dict5['黄红义'] = '是一个典型的猥琐男'
>>> dict5
{'黄红义': '是一个典型的猥琐男', '杨伟': '伟哥'}
>>> dict5['awei'] = '哈哈'
>>> dict5
{'awei': '哈哈', '黄红义': '是一个典型的猥琐男', '杨伟': '伟哥'}
>>>

>>>
>>> # dict 有很多有用的内置函数
>>> # fromkeys 为指定的键创建相同的值,如果不指定值则都是None
>>> # fromkeys 是创建出一个dict
>>> dict6 = {}
>>> dict6.fromkeys((1,2,3))
{1: None, 2: None, 3: None}
>>> dict6.fromkeys((1,2,3),'Number')
{1: 'Number', 2: 'Number', 3: 'Number'}
>>>
>>> # keys 获取所有的key
>>> for eachKey in dict5.keys() :
print(eachKey)

awei
黄红义
杨伟
>>> for eachValue in dict5.values():
print(eachValue)

哈哈
是一个典型的猥琐男
伟哥
>>> for eachItem in dict5.items():
print(eachItem)

('awei', '哈哈')
('黄红义', '是一个典型的猥琐男')
('杨伟', '伟哥')
>>>
>>> # 除了前面介绍的使用 ditc5[1]这种形式获取值之外,还可以使用 get()方法
>>> # dict5[1],这种形式,如果不存在这样的key会报错,但是get不会
>>>
>>> dict5['yangw']
Traceback (most recent call last):
File "<pyshell#57>", line 1, in <module>
dict5['yangw']
KeyError: 'yangw'
>>> dict5.get('yangw')
>>> print(dict5.get('yangw'))
None
>>> # 也可以自己去设置没有找到的值
>>> dict5.get('yangw','么有')
'么有'
>>> dict5.get('awei')
'哈哈'
>>>
>>> # 它也可以使用 in not in
>>> 'yangw' in dict5
False
>>> 'awei' in dict5
True
>>> # 清空字典 clear()
>>> dict5.clear()
>>> dict5
{}
>>> # pop 给定键,弹出值
>>> dict5= dict(黄红义='尿频、尿急、尿不净',杨伟='伟哥')
>>> dict5
{'黄红义': '尿频、尿急、尿不净', '杨伟': '伟哥'}
>>> dict5.pop('黄红义')
'尿频、尿急、尿不净'
>>> dict5
{'杨伟': '伟哥'}

>>> # popitem()是弹出一个项
>>> # 它是随机弹出
>>> dict5.popitem()
('杨伟', '伟哥')
>>> dict5
{}

>>>
>>> # setdefault() 是一种添加键值的方式,如果不指定值默认就是None
>>>
>>> dict5.setdefault("haha")
>>> dict5
{'haha': None}
>>> dict5.setdefault('nimei','halou')
'halou'
>>> dict5
{'haha': None, 'nimei': 'halou'}
>>> # update 是用影射关系或者字典来更新一个字典
>>>

字典当中的拷贝方法copy()是浅拷贝, 如果需要使用深拷贝,使用 copy模块的 deepcopy()方法.

>>>
>>> # 集合中的值是唯一的, 它与Java中的Set是一样的
>>> num={}
>>> type(num)
<class 'dict'>
>>> num2 = {1,2,3,4}
>>> type(num2)
<class 'set'>
>>>
>>> num2 = {1,2,3,4,3,2}
>>> num2
{1, 2, 3, 4}
>>> # 集合是无序的
>>>
>>> # 创建集合的方式 一种是直接把一堆元素用花括号括起来 一种是使用set工厂函数
>>>

>>>
>>> set1 = set([1,2,5,6,2,5])
>>> set1
{1, 2, 5, 6}
>>> # set 的构造参数是一个可迭代的对象(字符串,元祖,数组) ,也可以是空的
>>>
>>> # add添加一个元素
>>> set1.add(10)
>>> set1
{1, 2, 10, 5, 6}
>>> set1.remove(10)
>>> set1
{1, 2, 5, 6}
>>>
>>>
>>> #
>>> num1 = [1,2,3,3,4,4,4]
>>> num2 = list(set(num1))
>>> num2
[1, 2, 3, 4]
>>> # 可以使用in not in, 判断元素是否在集合中
>>> # 可以使用for将元素一一迭代出来
>>> # frozen: 冰冻的,冻结的
>>> # 不可改变的集合 frozenset
>>>
>>> num3 = frozenset([1,2,3,4,5])
>>> num3.add(6)
Traceback (most recent call last):
File "<pyshell#130>", line 1, in <module>
num3.add(6)
AttributeError: 'frozenset' object has no attribute 'add'
>>>

集合还有一些方法比较有用

a & b #求交集 a.intersection(b)

a | b #求并集 a.union(b)

a - b #求差集 a.difference(b)

a ^ b #求对称差集 a.symmetric_difference(b)

a.issubset(b) #a是b的子集

a.issuperset(b) #a是否包含b

Python学习笔记004_字典_集合的更多相关文章

  1. Python学习笔记四--字典与集合

    字典是Python中唯一的映射类型.所谓映射即指该数据类型包含哈希值(key)和与之对应的值(value)的序列.字典是可变类型.字典中的数据是无序排列的. 4.1.1字典的创建及赋值 dict1={ ...

  2. python学习笔记整理——字典

    python学习笔记整理 数据结构--字典 无序的 {键:值} 对集合 用于查询的方法 len(d) Return the number of items in the dictionary d. 返 ...

  3. PYTHON 学习笔记3 元组、集合、字典

    前言 在上一节的学习中.学习了基本的流程控制语句,if-elif-else for while 等,本节将拓展上一节学习过的一些List 列表当中操作的一些基本方法,以及元祖.序列等. 列表扩展 我们 ...

  4. python学习笔记:文件操作和集合(转)

    转自:http://www.nnzhp.cn/article/16/ 这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句 ...

  5. Python学习笔记010_迭代器_生成器

     迭代器 迭代就类似于循环,每次重复的过程被称为迭代的过程,每次迭代的结果将被用来作为下一次迭代的初始值,提供迭代方法的容器被称为迭代器. 常见的迭代器有 (列表.元祖.字典.字符串.文件 等),通常 ...

  6. python学习笔记八——字典的方法

    4.3.3 字典的方法 字典的常用方法可以极大地提高编程效率.keys()和values()分别返回字典的key列表和value列表.例: dict={"a":"appl ...

  7. python学习笔记七——字典

    4.3 字典结构 字典是Python中重要的数据类型,字典的由“键-值”对组成的集合,字典中的“值”通过“键”来引用. 4.3.1 字典的创建 字典由一系列的“键-值”(key-value)对组成,“ ...

  8. Python学习笔记(八)—集合的学习

    集合(set)是一个无序不重复元素的序列. 基本功能是进行成员关系测试和删除重复元素. 1.集合的作用 它可以把一个列表中重复的数据去掉,而不需要你再写判断 可以做关系测试,比如说有两个科目,一个数学 ...

  9. Python学习笔记之字典

    一.创建和使用字典 1.创建字典 phonebook={'Alice':'2341','Beth':'9102','Cecil':'3258'} 2.dict,通过映射创建字典 >>> ...

随机推荐

  1. 《高性能Mysql》翻译错误

    原文中在分区表中的一句话翻译错误,如下 应该是[扫描列a上的索引就需要扫描每一个分区内对应的索引树],英文版描述如下: ''' Suppose you define an index on a and ...

  2. WebService/WCF/WebAPI区别

    详细描述它们之间的区别,为什么这么选择,尤其是WCF vs WebAPI

  3. jenkins 时区设置

    背景 直接搭建好jenkins没有留意时间这块,执行job的时候发现,执行时间和服务器时间不对,需要设置时区 步骤 找到jenkins的启动配置,centos在: /etc/sysconfig/jen ...

  4. 关于CSS属性clip在手机浏览器端的兼容性问题

    由于自己的6坏了拿去修了所以这两天使用了同事一只山寨安卓机和自己早年的小4,在今天的页面测试中,对于img中进行clip操作在这两台机子中均不能实现,后借用同事的6发现clip能正常展现,其中安卓版本 ...

  5. 一个页面多个iframe赋值

    先在页面上设置一个元素: <input type="hidden" id="content" value={$content}> 使用前端技术获取父 ...

  6. jquery 的 each 方法中 return 的坑

    jquery 的 each 方法中 return 的坑 Chapter 0 在项目中使用 jquery 的 each 方法时想在 each 的循环中返回一个布尔类型的值于是掉进一个坑中... Chap ...

  7. webSocket浏览器握手不成功(解决)

    websocket与服务端握手会报握手不成功的错误解决方法: 首先是服务端首次收到请求要回报给客户端的报文要做处理多的不说,方法敬上: /// <summary> /// 打包请求连接数据 ...

  8. Hue集成Hadoop和Hive

    一.环境准备 1.下载Hue:https://dl.dropboxusercontent.com/u/730827/hue/releases/3.12.0/hue-3.12.0.tgz 2.安装依赖 ...

  9. python2 urllib2抓取51job网的招聘数据

    #coding=utf-8 __author__ = "carry" import sys reload(sys) sys.setdefaultencoding('utf-8') ...

  10. Docker 集群环境实现方式

    Docker 集群环境实现的新方式 近几年来,Docker 作为一个开源的应用容器引擎,深受广大开发者的欢迎.随着 Docker 生态圈的不断建设,应用领域越来越广.云计算,大数据,移动技术的快速发展 ...