>>> # 字典 用大括号表示, 它是影射类型,相当于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. How to resolve the truncate/drop/delete/join hang issue in ADW

    In some case, we found that when we execute the sql commands like truncate table, drop table, delete ...

  2. sublime text 的小细节设置,让你的代码更优美

    这些属性都可以在 首选项>设置-默认 里修改下面也会介绍几个比较常用的几个插件 字体大小: "font_size": 17 高亮编辑中的一行 "highlight_ ...

  3. WeQuant交易策略—Chaikin A/D

    策略名称:AD指标策略 多空双方力量浮标- AD(Chaikin A/D线)策略关键词:ChaikinA/D线.多空对比.AD指标是一种非常流行的平横交易量指标, 用于估定一段时间内该证券累积的资金流 ...

  4. vue-cli脚手架npm相关文件解读(3)webpack.dev.conf.js

    系列文章传送门: 1.build/webpack.base.conf.js 2.build/webpack.prod.conf.js 3.build/webpack.dev.conf.js 4.bui ...

  5. STL空间配置器

    1.什么是空间配置器? 空间配置器负责空间配置与管理.配置器是一个实现了动态空间配置.空间管理.空间释放的class template.以内存池方式实现小块内存管理分配.关于内存池概念可以点击:内存池 ...

  6. poj3368 uva11235 Frequent values

    Description You are given a sequence of n integers a1 , a2 , ... , an in non-decreasing order. In ad ...

  7. JavaScript入门(四)

    一.数组 1.数组的基本概念 数组是在内存空间中连续存储的一组有序数据的集合.元素在数组中的顺序,称为下标.可以使用下标访问数组的每个元素. 2.如何声明一个数组 ①使用字面量声明:var arr = ...

  8. 【译】StackExchange.Redis中文使用文档

    StackExchange.Redis中文使用文档 Intro 最近想深入学习一些 Redis 相关的东西.于是看了看官方的项目StackExchange.Redis,发现里面有一份文档,于是打算翻译 ...

  9. Python金融行业必备工具

    有些国外的平台.社区.博客如果连接无法打开,那说明可能需要"科学"上网 量化交易平台 国内在线量化平台: BigQuant - 你的人工智能量化平台 - 可以无门槛地使用机器学习. ...

  10. JQuery操作iframe父页面与子页面的元素与方法

    JQuery操作iframe父页面与子页面的元素与方法 JQUERY IFRAME 下面简单使用Jquery来操作iframe的一些记录,这个使用纯JS也可以实现. 第一.在iframe中查找父页面元 ...