字典操作

字典一种key - value 的数据类型,使用就像我们上学用的字典,通过笔划、字母来查对应页的详细内容。

语法:

info = {
's1': "jack",
's3': "musker",
's2': "lili",
}

字典的特性:

  • dict是无序的
  • key必须是唯一的,so 天生去重

增加

>>> info['s4'] = "wangwu"
>>> info
{'s2': 'lili', 's1': 'jack', 's4': 'wangwu'}

修改

>>> info['s3'] = "丽丽"
>>> info
{'s2': 'lili', 's3': '丽丽', 's1': 'jack', 's4': 'wangwu'}

删除

>>> info.pop('s1')
'jack'
>>> info
{'s2': 'lili', 's3': '丽丽', 's4': 'wangwu'} >>> del info['s3']
>>> info
{'s2': 'lili', 's4': 'wangwu'} >>> info.popitem()
('s2', 'lili')
>>> info
{'s4': 'wangwu'}

查找

>>> 's2' in info    #标准用法
True
>>> info.get('s2') #获取
'lili'
>>> info['s2'] #同上,但是看下面
'lili'
>>> info['s5'] #如果一个key不存在,就报错,get不会,不存在只返回None
Traceback (most recent call last):
File "<pyshell#15>", line 1, in <module>
info['s5']
KeyError: 's5'

其他操作

#values
>>> info.values()
dict_values(['lili', 'jack']) #keys
>>> info.keys()
dict_keys(['s2', 's1']) #setdefault
>>> info.setdefault('s6','musker')
'musker'
>>> info
{'s2': 'lili', 's6': 'musker', 's1': 'jack'}
>>> info.setdefault('s2','wangwu')
'lili'
>>> info
{'s2': 'lili', 's6': 'musker', 's1': 'jack'} #update
>>> info
{'s2': 'lili', 's6': 'musker', 's1': 'jack'}
>>> b = {1:'a', 2:'b'}
>>> info.update(b)
>>> info
{'s2': 'lili', 1: 'a', 2: 'b', 's6': 'musker', 's1': 'jack'} #items
>>> info.items()
dict_items([('s2', 'lili'), (1, 'a'), (2, 'b'), ('s6', 'musker'), ('s1', 'jack')]) #通过一个列表生成默认dict,有个没办法解释的坑,少用吧这个
>>> dict.fromkeys([1,2,3],'testd')
{1: 'testd', 2: 'testd', 3: 'testd'}

循环dict

#方法1
for key in info:
print(key,info[key]) #方法2
for k,v in info.items(): #会先把dict转成list,数据里大时莫用
print(k,v)

集合操作

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

常用操作

s = set([3,5,9,10])      #创建一个数值集合  

t = set("Hello")         #创建一个唯一字符的集合  

a = t | s          # t 和 s的并集  

b = t & s          # t 和 s的交集  

c = t – s          # 求差集(项在t中,但不在s中)  

d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中)  

基本操作:  

t.add('x')            # 添加一项  

s.update([10,37,42])  # 在s中添加多项  

使用remove()可以删除一项:  

t.remove('H')  

len(s)
set 的长度 x in s
测试 x 是否是 s 的成员 x not in s
测试 x 是否不是 s 的成员 s.issubset(t)
s <= t
测试是否 s 中的每一个元素都在 t 中 s.issuperset(t)
s >= t
测试是否 t 中的每一个元素都在 s 中 s.union(t)
s | t
返回一个新的 set 包含 s 和 t 中的每一个元素 s.intersection(t)
s & t
返回一个新的 set 包含 s 和 t 中的公共元素 s.difference(t)
s - t
返回一个新的 set 包含 s 中有但是 t 中没有的元素 s.symmetric_difference(t)
s ^ t
返回一个新的 set 包含 s 和 t 中不重复的元素 s.copy()
返回 set “s”的一个浅复制

python字典与集合操作的更多相关文章

  1. 转:Python字典与集合操作总结

    转自:http://blog.csdn.net/business122/article/details/7537014 一.创建字典 方法①: >>> dict1 = {} > ...

  2. Python 列表、元组、字典及集合操作详解

    一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...

  3. Python语法速查: 2. 列表、元组、字典、集合操作

    返回目录 (1)通用序列操作 “序列”表示索引为非负整数的有序对象集合,列表.元组.字符串都属于序列.区别在于:列表是可变的,而元组和字符串是不可变的.序列的通用操作他们都可以用. 操作或方法 简述 ...

  4. Python字典和集合

    Python字典操作与遍历: 1.http://www.cnblogs.com/rubylouvre/archive/2011/06/19/2084739.html 2.http://5iqiong. ...

  5. 流畅的python 字典和集合

    介绍 dict 类型不但在各种程序里广泛使用,它也是 Python 语言的基石.模块的命名空间.实例的属性和函数的关键字参数中都可以看到字典的身影.跟它有关的内置函数都在 __builtins__._ ...

  6. Python基础-set集合操作

    set集合,是一个无序且不重复的元素集合.定义方式类似字典使用{}创建 目前我们学过的数据类型: 1.字符串(str),2.整型(int),3.浮点型(float),4,列表(list) 5.元组(t ...

  7. Python字典及相关操作(内含例题)

    Python字典类型 今天将会介绍一种在python中十分常见的组合数据类型——字典 通过一些实例来理解字典中的常规操作 什么是字典类型? 列表中查找是通过整数的索引(元素在列表中的序号)来实现查找功 ...

  8. python 字典的常见操作

    字典 字典的增删改查 字典的创建方式: # 创建字典类型 info = { 'name':'李白', ', 'sex':'男' } msg = { 'user01':'Longzeluola', 'u ...

  9. Python字典和集合的内部实现

    1. 哈希表(Hash tables) 在Python中,字典是通过哈希表实现的.也就是说,字典是一个数组,而数组的索引是经过哈希函数处理后得到的.哈希函数的目的是使键均匀地分布在数组中.由于不同的键 ...

随机推荐

  1. 通过 JS 脚本去除csdn广告

    1. chorme 浏览器 1.1 通过书签方式添加 新建书签: 在网址一栏中输入: javascript: $(function () { $('aside .csdn-tracking-stati ...

  2. 第一次在新西兰组织技术社区活动:Monkeyfest2018

    从3月份登陆到现在,转眼间已经8个月了.在6个月的时候我就想写篇文总结下近期的一些状况,一直拖到现在.因为近期一直在筹备我第一次社区活动——Monkeyfest 2018,占用了比较多的时间.这是一个 ...

  3. C#使用ILGenerator动态生成函数

    游戏服务器里面总是有一大堆的配置文件需要读取, 而且这些配置文件的读取: * 要不然做成弱类型的, 就是一堆字符串或者数字, 不能看出来错误(需要重新检测一次) * 要不然做成强类型的, 每种类型都需 ...

  4. C\S 架构 DNS服务器 交换机 路由器

    ------------------------只有不快的斧,没有劈不开的柴;只有想不到的人,没有做不到的事.想干总会有办法,不想干总会有理由!# -------------------------- ...

  5. Python全栈开发之路 【第十八篇】:Ajax技术

    Ajax技术 Ajax = 异步 JavaScript 和 XML. Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 1.jQuery的load()方法 jQuery loa ...

  6. Python做windows服务

    Python做windows服务(多进程服务),并结束多进程 Python中_,__,__xx__的区别 在注册MyWinService服务时,再使用 "sc delete 服务器名称&qu ...

  7. Educational Codeforces Round 52 (Rated for Div. 2) -C

    #include<iostream> #include<stdio.h> #include<string.h> #include<algorithm> ...

  8. 008-我的博友不锈钢钥匙扣上的随身金属外壳可启动U盘-20190413

      008-我的博友不锈钢钥匙扣上的随身金属外壳可启动U盘-20190413

  9. JS 面向对象 ~ 创建对象的 9 种方式

    一.创建对象的几种方式 1.通过字面量创建 var obj = {}; 这种写法相当于: var obj = new Object(); 缺点:使用同一个接口创建很多单个对象,会产生大量重复代码 2. ...

  10. import导入模块,==和is,浅拷贝和深拷贝,进制转换,位运算,私有化,property装饰器

    '''import导入模块'''import sysprint(sys.path) sys.path.append('D://ASoft/Python/PycharmProjects')import ...