day4(dict和set)
dict
内置字典,使用key-value存储,具有极快的查找速度。
>>>d = {'michael': 95, 'bob': 75, 'tracy': 85}
>>>d['michael']
95
>>>d['admin'] = 67
>>>d['admin']
67
一个key对应一个value,多次对一个key放入value,后面的值会把前面的值冲掉。
注意dict的key必须是不可变的对象(因为是通过key来计算位置)。
要避免 key 不存在的错误,有两种办法,一是通过 in 判断 key 是否存在:
>>> 'Thomas' in d
False
二是通过 dict 提供的 get 方法,如果 key 不存在,可以返回 None,或者自己指定的 value:
>>> d.get('Thomas')
>>> d.get('Thomas', -1)
-1
注意:返回 None 的时候 Python 的交互式命令行不显示结果。
要删除一个 key,用 pop(key)方法,对应的 value 也会从 dict 中删除:
>>> d.pop('Bob')
75
>>> d
{'Michael': 95, 'Tracy': 85}
请务必注意,dict 内部存放的顺序和 key 放入的顺序是没有关系
set
>>> s = set([1, 2, 3])
>>> s
{1, 2, 3}
重复元素在 set 中自动被过滤:
>>> s = set([1, 1, 2, 2, 3, 3])
>>> s
{1, 2, 3}
通过 add(key)方法可以添加元素到 set 中,可以重复添加,但不会有效果:
>>> s.add(4)
>>> s
{1, 2, 3, 4}
>>> s.add(4)
>>> s
{1, 2, 3, 4}
通过 remove(key)方法可以删除元素:
>>> s.remove(4)
>>> s
{1, 2, 3}
set 可以看成数学意义上的无序和无重复元素的集合,两个 set 可以做数学意义上的交集、并集等操作:
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2
{2, 3}
>>> s1 | s2
{1, 2, 3, 4}
>>> a = 'abc'
>>> b = a.replace('a', 'A')
>>> b
'Abc'
>>> a
'abc'
对于不变对象来说,调用对象自身的任意方法,也不会改变该对
象自身的内容。相反,这些方法会创建新的对象并返回,这样,就保证
了不可变对象本身永远是不可变的.
day4(dict和set)的更多相关文章
- Day4 dict和set
dict -- dictionary 一组key的集合,包含key与value的对应. Python内置的字典,在其他语言中称为map,使用key-value存储,具有极快的查找 ...
- day4:Python列表(list)元组( tuple)字典(dict)
列表----list 列表:中括号,每个元素用‘,’分割,列表里面也可以嵌套列表,列表里面可以包含数字,字符串,布尔值等,也就是元素的集合 例:test = [2,4,'sun','yao'] #索引 ...
- Python之路,Day4 - Python基础4 (new版)
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- Day4 - Python基础4 迭代器、装饰器、软件开发规范
Python之路,Day4 - Python基础4 (new版) 本节内容 迭代器&生成器 装饰器 Json & pickle 数据序列化 软件目录结构规范 作业:ATM项目开发 ...
- 跟着ALEX 学python day4集合 装饰器 生成器 迭代器 json序列化
文档内容学习于 http://www.cnblogs.com/xiaozhiqi/ 装饰器 : 定义: 装饰器 本质是函数,功能是装饰其他函数,就是为其他函数添加附加功能. 原则: 1.不能修改被装 ...
- python day4 元组/字典/集合类知识点补充
目录 python day4 元组/字典/集合类知识点补充 1. 元组tuple知识点补充 2. 字典dict的知识点补充 3. 基本数据类型set 4. 三元运算,又叫三目运算 5. 深复制浅复制 ...
- tuple放入dict中
tuple放入dict中是否可以正常运行 # 将tuple放入dict中 a = ('AI','Kobe','Yao') b = ('AI',['Kobe','Yao']) dict1 = {'a': ...
- redis数据结构存储Dict设计细节(redis的设计与实现笔记)
说到redis的Dict(字典),虽说算法上跟市面上一般的Dict实现没有什么区别,但是redis的Dict有2个特殊的地方那就是它的rehash(重新散列)和它的字典节点单向链表. 以下是dict用 ...
- python list dict 去重的两种方式
def dedupe(items, key=None): seen = set() for item in items: val = item if key is None else key(item ...
随机推荐
- uva 10253 Series-Parallel Networks (整数划分+多重集)
UVa Online Judge 题意是计算给定数量的边通过串联并联两种方式,能组成多少种不同的网络.将它转化为一个树形结构,也就是求有多少不同构的树. 代码如下: #include <cstd ...
- 手风琴jq实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python--day23--组合
- Python--day25--复习(单继承和多继承的总结)
- Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow pip命令
引言: Tensorflow大名鼎鼎,这里不再赘述其为何物.这里讲描述在安装python包的时候碰到的“No matching distribution found for tensorflow”,其 ...
- java什么叫面向对象?
面向对象(Object-Oriented,简称OO)就是一种常见的程序结构设计方法. 面向对象思想的基础是将相关的数据和方法放在一起,组合成一种新的复合数据类型,然后使用新创建的复合数据类型作为项目的 ...
- IP地址和物理地址有什么区别
所谓IP地址就是给每个连接在Internet上的主机分配的一个32bit地址.简单地说就是你在整个互联网上的ID. MAC(Media Access Control,介质访问控制)地址 (物理地址)是 ...
- jekyll 添加 Valine 评论
本文告诉大家如何在自己搭建的静态博客添加 Valine 评论.在这前,我基本都是使用 多说,但是多说gg啦,所以就在找一个可以替换的评论 本来 Disqus是很好的,但是在国内很难打开,所以我就需要一 ...
- 【50.00%】【codeforces 747C】Servers
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- RabbitMQ-事务和Confirm消息确认
,如果要保证消息的可靠性,需要对消息进行持久化处理,然而消息持久化除了需要代码的设置之外,还有一个重要步骤是至关重要的,那就是保证你的消息顺利进入Broker(代理服务器),如图所示: 正常情况下,如 ...