python笔记——dict和set
学习廖雪峰python3笔记_dict和set
dict__介绍
- dict --> dictionary(字典)--> python内置 --> 使用键-值(key-value)存储
- dict --> 优点 --> 无论表多大,查找速度不会变慢,但是占用大量内存,内存浪费多 --> 原因:没有使用里list使用的遍历,通过建立*
索引或内部计算出查找值的内存地址(通过哈希Hash*算法)
dict__操作
- 查询和插入操作
>>> l = {'L': 95, 'YL': 96, 'LYL': 97}
>>> l['LYL']
97
>>> l['LYL'] = 17
>>> l['LYL']
17
- 插入时key不存在报错
>>>l = ['YLY’]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'YLY'
- 避免key不存在错误
- 方法一:通过in判断key是否存在
>>> 'YLY' in l
False
- 方法二:通过dict提供的get方法
>>> l.get('YLY')
>>> l.get('YLY', -1)
-1
- 删除key
>>>l.pop('LYL')
97
>>>l
{'L': 95, 'YL': 96}
- 注意:dict的key必须是不可变对象-->保证hash的正确性
>>> key = [1, 2, 3]
>>> l[key] = 'a list'
Traceback (most recent call last)
File "<stdin>", line 1, in <module>
TypeError: unhashable type: 'list'
set__介绍
- 类似于dict-->不存储value-->key不能重复
set__操作
- 创建set,要提供一个list作为输入的集合
>>> l = set([1, 2, 3])
>>> l
{1, 2, 3}
- 重复元素在set中被自动过滤:
>>> l = set([a, a, b, b, c, c)]
>>> l
{a, b, c}
- 添加元素,重复添加不会有效果--add(key)
>>> l.add(d)
>>> l
{a, b, c, d}
- 删除元素--remove(key)
>>> l.remove(d)
>>> l
{a, b, c}
python笔记——dict和set的更多相关文章
- python笔记-dict字典的方法2
#!/usr/bin/env python #-*- coding:utf-8 -*- ''' 概述: 使用键值(key-value)存储,具有极快的查找速度 注意:字典是无序的 key的特性: 1. ...
- python笔记-dict字典的方法
#!/usr/bin/env python #-*- coding:utf-8 -*- #打印0001-9999的数字 for i in range(9999): s = "%04d&quo ...
- Python的dict字典结构操作方法学习笔记
Python的dict字典结构操作方法学习笔记 这篇文章主要介绍了Python的dict字典结构操作方法学习笔记本,字典的操作是Python入门学习中的基础知识,需要的朋友可以参考下 一.字典的基本方 ...
- [Python笔记][第二章Python序列-tuple,dict,set]
2016/1/27学习内容 第二章 Python序列-tuple tuple创建的tips a_tuple=('a',),要这样创建,而不是a_tuple=('a'),后者是一个创建了一个字符 tup ...
- 13.python笔记之pyyaml模块
Date:2016-03-25 Title:13.Python笔记之Pyymal模块使用 Tags:Python Category:Python 博客地址:www.liuyao.me 作者:刘耀 YA ...
- python笔记 - day8
python笔记 - day8 参考: http://www.cnblogs.com/wupeiqi/p/4766801.html http://www.cnblogs.com/wupeiqi/art ...
- python笔记 - day5
python笔记 - day5 参考: http://www.cnblogs.com/wupeiqi/articles/5484747.html http://www.cnblogs.com/alex ...
- python笔记之常用模块用法分析
python笔记之常用模块用法分析 内置模块(不用import就可以直接使用) 常用内置函数 help(obj) 在线帮助, obj可是任何类型 callable(obj) 查看一个obj是不是可以像 ...
- s21day16 python笔记
s21day16 python笔记 一.模块 1.1 模块的定义 模块的定义 可以吧一个py文件或一个文件夹(包)当作一个模块,以便于以后其他py文件的调用 包的定义(python2与python3的 ...
随机推荐
- Angular 应用的外壳
你首先需要使用 Angular CLI 来创建一个初始化的应用.随后,你将对你已经初始化的应用进行修改来让你构建出 Tour of Heroes app(英雄指南) 这个应用. 在教程的本部分,你需要 ...
- 【BZOJ3261】最大异或和(可持久化Trie)
题意: 思路:可持久化Trie板子题,支持序列插入和询问 #include<bits/stdc++.h> using namespace std; typedef long long ll ...
- java和python实现一个加权SlopeOne推荐算法
一.加权SlopeOne算法公式: (1).求得所有item之间的评分偏差 上式中分子部分为项目j与项目i的偏差和,分母部分为所有同时对项目j与项目i评分的用户数 (2).加权预测评分 项目j与项目i ...
- jQuery_attr()操作
下面来介绍jQuery的属性attr()操作: <!DOCTYPE html> <html> <head> <meta charset="UTF-8 ...
- ar9331修改flash大小和df、cat /proc/mtd的区别
首先感谢黄工的指导. 在openwrt固件目录下target/linux/ar71xx/image/Makefile,找到对应的机型,修改为4M,8M,16M,32M. 以oolite机型为例,如图所 ...
- 转载:tcp详解
TCP详解 转自:http://www.cnblogs.com/kzloser/articles/2582957.html 首部格式 图释: 各个段位说明: 源端口和目的端口: 各占 2 字节.端口是 ...
- Unity3D_(游戏)控制物体的上、下、左、右移动
通过键盘上↑.↓.←.→实现对物体的控制 using System.Collections; using System.Collections.Generic; using UnityEngine; ...
- Unity3D_(游戏)卡牌01_启动屏界面
卡牌2D游戏展示 (游戏代码放到 卡牌04_游戏界面 文章最后面~) 游戏项目已托管到github上(里面有个32bit可执行文件) 传送门 规则 开始游戏每张卡牌初始翻开展示 展示几秒后卡牌 ...
- Mongo Cursor
简介 在使用 Java 对数据库进行连接时,都会获取到一个 cursor ,cursor 实际指到的是我们查询数据库的query,而并不是 query 查询到的数据集. 此次在使用 mongo 的 c ...
- Spring boot之添加JSP支持
大纲 (1) 创建Maven web project: (2) 在pom.xml文件添加依赖 (3) 配置application.properties支持jsp (4) 编写测试Controller ...