python 中的 list dict 与 set 的关系
转自: http://www.cnblogs.com/soaringEveryday/p/5044007.html
list
arraylist 实现(数组)
List 通过内置的 append()方法来添加到尾部,通过insert()方法添加到指定位置(下标从0开始):
通过pop()删除最后尾部元素,也可以指定一参数删除指定位置:
也可以通过下标进行复制替换。
dict
Dict是Python中非常重要的数据类型,就像它的字面意思一样,它是个活字典,其实就是Key-Value键值对,类似于HashMap,可以用花括号{}通过类似于定义一个C语言的结构体那样去定义它:
区别:
- 查找速度快。无论是10个还是10万个,速度都是一样的,但是代价是耗费的内存大。List相反,占用内存小,但是查找速度慢。这就好比是数组和链表的区别,数组并不知道要开辟多少空间,所以往往开始就会开辟一个大空间,但是直接通过下标查找速度快;而链表占用的空间小,但是查找的时候必须顺序的遍历导致速度很慢
- 没有顺序。Dict是无顺序的,而List是有序的集合,所以不能用Dict来存储有序集合
- Key不可变,Value可变。一旦一个键值对加入dict后,它对应的key就不能再变了,但是Value是可以变化的。所以List不可以当做Dict的Key,但是可以作为Value:
set
hashtable 实现,存取时间可看做O(1),但是没有办法高效的完成顺序相关的操作(比如找前驱后继,最大最小值等等),所以认为是“无序”的。
此外,set就像是把Dict中的key抽出来了一样,类似于一个List,但是内容又不能重复,通过调用set()方法创建:
对于访问一个set的意义就仅仅在于查看某个元素是否在这个集合里面:
通过add和remove来添加、删除元素(保持不重复),添加元素时,用set的add()方法:
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
如果删除的元素不存在set中,remove()会报错:
所以如果我们要判断一个元素是否在一些不同的条件内符合,用set是最好的选择,下面例子:
months = set(['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec',])
x1 = 'Feb'
x2 = 'Sun' if x1 in months:
print 'x1: ok'
else:
print 'x1: error' if x2 in months:
print 'x2: ok'
else:
print 'x2: error' >>>
x1: ok
x2: error
python 中的 list dict 与 set 的关系的更多相关文章
- Python中list,tuple,dict,set的区别和用法
Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个内置数据类型功不可没,他们即是list, tuple, dict, set.这里对他们进行一个简明的总结. List ...
- python中的字典(dict),列表(list),元组(tuple)
一,List:列表 python内置的一种数据类型是列表:list.list是一种有序的数据集合,可以随意的添加和删除其中的数据.比如列出班里所有的同学的名字,列出所有工厂员工的工号等都是可以用到列表 ...
- Python中list,tuple,dict,set的区别和用法(转)
原文地址:http://www.cnblogs.com/soaringEveryday/p/5044007.html Python语言简洁明了,可以用较少的代码实现同样的功能.这其中Python的四个 ...
- python中json与dict之间转换
Python之dict(或对象)与json之间的互相转化 在Python语言中,json数据与dict字典以及对象之间的转化,是必不可少的操作. 在Python中自带json库.通过import js ...
- python中list/tuple/dict/set的区别
序列是Python中最基本的数据结构.序列中的每个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推.Python有6个序列的内置类型,但最常见的是列表list和元组t ...
- python中list和dict
字典(Dictionary)是一种映射结构的数据类型,由无序的“键-值对”组成.字典的键必须是不可改变的类型,如:字符串,数字,tuple:值可以为任何python数据类型. 1.新建字典 1 2 3 ...
- python中map()和dict()的用法
map()用法 map()是python的内置函数,会根据提供的函数对指定序列做映射. 语法: map(func, iter, ...) 其中func为一个功能函数,iter表示可迭代参数序列.map ...
- python中的list, dict, tuple以及collections模块的基本用法
1.关于list的一些基本用法 # 创建没有初值的列表 list1=[] # 创建有初值的列表 list2=['this','is','a','list'] # 创建给定长度但初值不确定的列表 lis ...
- Python中xml和dict格式转换
在做接口自动化的时候,请求数据之前都是JSON格式的,Python有自带的包来解决.最近在做APP的接口,遇到XML格式的请求数据,费了很大劲来解决,解决方式是:接口文档拿到的是XML,在线转化为js ...
随机推荐
- iterm快捷键设置
如图所示,选择相应的动作和快捷键组合
- 超过 130 个你需要了解的 vim 命令
从 1970 年开始,vi 和 vim 就成为了程序员最喜爱的文本编辑器之一.5年前,我写了一个问自己名为 “每个程序员都应该知道的 100 个 vim 命令” 这次算是之前那篇文章的改进版,希望你会 ...
- How do I remove a particular element from an array in JavaScript?
9090down voteaccepted Find the index of the array element you want to remove, then remove that index ...
- Get the client's IP address in socket.io
From: https://www.wentong.org/codex/question-2018081564702.html When using socket.IO in a Node.js se ...
- ionic 视图滚动到顶部
问题描述 进入页面, 滚动到底部 点击一个连接, 当前视图内容更新了 内容滚动到了上次的位置导致底部的内容没显示 需要控制自动回滚到顶部 <ion-content delegate-handle ...
- 读取mysql数据库的数据,转为json格式
# coding=utf-8 ''' Created on 2016-10-26 @author: Jennifer Project:读取mysql数据库的数据,转为json格式 ''' import ...
- Dubbo 分布式服务框架简介
1.分布式服务框架 1.1 Dubbo 简介 Dubbo 是一个分布式服务框架,以及阿里巴巴内部的 SOA 服务化治理方案的核心框架.其功能主要包括:高性能 NIO 通讯及多协议集成,服务动态寻址与路 ...
- Swift Struct 结构体
前言 Swift 语言有两种基本的数据类型,即类(class)和结构体(struct),class 这样的概念大家不会陌生,而 struct 也并不是什么新的概念,在 Objective-C 和 C ...
- Mysql 中如何创建触发器
use websitelogdb; #创建表 CREATE TABLE `test` ( `idtest` int(11) NOT NULL AUTO_INCREMENT, `testcol` var ...
- Atitit.如何文章写好 论文 文章 如何写好论文 技术博客
Atitit.如何文章写好 论文 文章 如何写好论文 技术博客 1. 原则 1 1.1. 有深度, 有广度 1 1.2. 业务通用性有通用性 尽可能向上抽象一俩层..业务通用性与语言通用性. 2 ...