>>> # 字典 用大括号表示, 它是影射类型,相当于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. Python - Seaborn可视化:图形个性化设置的几个小技巧

    1 概述 在可视化过程中,经常会对默认的制图效果不满意,希望能个性化进行各种设置. 本文通过一个简单的示例,来介绍seaborn可视化过程中的个性化设置.包括常用的设置,如: 设置图表显示颜色 设置图 ...

  2. Tuple元组 C#

    使用元组, 一些简单的结构或对象就不需要新建一个类了. https://msdn.microsoft.com/zh-cn/library/system.tuple.aspx

  3. python之路第二天 随便记记 今天主要很郁闷

    为何要有操作系统 为了让程序员更轻松的完成命令电脑工作而存在的,控制硬件,服务于软件. 操作系统的位置 操作系统位于软件和硬件之间.操作系统由内核(运行于内核态,控制硬件)和系统调用(运行于用户态,为 ...

  4. Yii2 在模块modules间跳转时,url自动加模块名

    如目的地址product/detail, 当前模块是admin, 访问时如果目的url'product/detail',会变成'admin/product/detail'. 解决方法:url改成'/p ...

  5. 8.8.2 Final关键字

    final表示不可改变的含义   1.采用final 修饰的类不能被继承 2.采用final 修饰的方法不能被覆盖 3.采用final 修饰的变量不能被修改 4.final修饰的变量必须显示初始化(该 ...

  6. spring boot整合jsp的那些坑(spring boot 学习笔记之三)

    Spring Boot 整合 Jsp 步骤: 1.新建一个spring boot项目 2.修改pom文件 <dependency>            <groupId>or ...

  7. 数据结构-二叉树 C和C++实现

    二叉树,指针域具有两个下一节点的特殊链表结构. 先来看看它的结构 (此处补图) 来看程序中需要使用到的概念: 树根:二叉树的第一个节点 子树:对于某一个节点指针域指向的节点,左指针指向的节点为左子节点 ...

  8. 如何快速的理解JavaScript闭包?

    先看问题 1. 在js中的作用域是什么? 作用域就是作用范围,作用空间.作用域分为全局作用域和局部作用域.(这个东西大家都明白) 如果把局部作用域比作一个国家,那么全局作用域就是地球,地球上除了那个国 ...

  9. github+hexo搭建自己的博客网站(四)主题之外的一些基本配置(统计配置,网站访问量显示)

    1.百度.谷歌统计配置 百度统计配置 申请账号:https://tongji.baidu.com/web/welcome/login 在代码获取的地方只要填入key即可 注册的时候,填的域名和url, ...

  10. json对象和json字符串之间的转化

    json对象和json字符串之间的转化 json字符串----->json对象 使用JSON.parse()函数 var jsonStr = '{"name":"z ...