>>> # 字典 用大括号表示, 它是影射类型,相当于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. quartz学习笔记(一)简单入门

    前言 quartz是Java编写的一款开源的任务调度开发框架,在项目开发中很多场景都可以用到,比如订单超期自动收货. 所谓程序源于生活,生活中也有很多场景可以用quartz来模拟,比如工作日早上七点起 ...

  2. 【Ubuntu 16】 SSH免密码登录

    免密码登录时两个机器的普通用户名都要相同,这里都是dream361 ,主机名可以不同,这里的主机名都是ubuntu 1.目前有两台机器master 和 slave 在这两台机器上都安装并启动ssh服务 ...

  3. <当幸福来敲门>之一些很喜欢的台词收藏

    <当幸福来敲门> ================ ================

  4. WeQuant交易策略—RSI

    RSI指标策略 策略介绍 RSI(相对强弱指标),是通过一段时期内的平均收盘上涨和下跌数,计算价格上涨所产生的波动占整个波动的百分比,来分析市场买卖盘的意向和实力. 计算公式(以日为单位举例) RSI ...

  5. 四种JavaScript隐式类型转换的总结

    一般存在四种情况,JavaScript会对变量的数据类型进行转换. 目录 * if中的条件会被自动转为Boolean类型 * 会被转为false的数据 * 会被转为true的数据 * 参与+运算都会被 ...

  6. PYQT4 : QSystemTrayIcon练习

    照着demo自己做了一遍,练练手 import sys from PyQt4 import QtGui from PyQt4 import QtCore class SysTray(QtGui.QDi ...

  7. 【实验吧】逆向rev50

    a simple reverse view 解题链接: http://ctf5.shiyanbar.com/reverse/rev50/rev50 看了别人写的wp得知是挂载参数执行. 补充:gdb挂 ...

  8. javascript创建数组的所有方式【Array老师】

    1.采用直接量创建 var arr = [];//创建一个空数组 var arr2 = [1,2,3];//创建一个有三个元素的数组 2.采用构造函数创建 a.var arr1 = new Array ...

  9. Mybatis映射文件完整模板参照

    Mybatis映射文件完整模板参照 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE map ...

  10. JavaScript在应用中的技巧(一)

    分享一些在JavaScript中遇到的一些实用的技巧. 理解JavaScript的数值型数据类型 JavaScript的数值型数据类型只有一种:number.即不管是整数还是浮点数,JavaScrip ...