微信号:grzlwx

介绍:光荣之路官方资讯

Python中常见的数据类型总结(四)

2015-09-01 22:59 光荣之路

三 集合(set)


dict是建立了一系列的映射关系,而set是建立一系列无序的,不重复的元素。

1
创建

创建set的方式是调用set()并传入一个list,list的元素将作为set的元素。

>>> S = set([1,2,3])>>> S {1, 2, 3}

重复元素在Set中自动过滤,如:

>>> S = set([1,1,2,3,4,5,4])>>> S {1, 2, 3, 4, 5}
2
添加
add()添加,有重复元素可以添加,但不会有效果:


>>> S.add(4)>>> S {1, 2, 3, 4, 5}>>> S.add(9)>>> S {1, 2, 3, 4, 5, 9}


3
删除
>>> S.remove(9)>>> S {1, 2, 3, 4, 5}

4
交集,并集

set可以看成数学意义上的无序和无重复元素的集合,因此,两个set可以做数学意义上的交集、并集:


>>> S1 = set([1,2])>>> S2 = set([2,3])>>> S1&S2 {2}>>> S1|S2 {1, 2, 3}


set和dict的唯一区别仅在于没有存储对应的value,但是,set的原理和dict一样,所以,同样不可以放入可变对象,因为无法判断两个可变对象是否相等,也就无法保证set内部“不会有重复元素”

list,tuple,dict和set的主要区别

1
list

list是一个使用方括号括起来的有序元素集合;

List 可以作为以 0 下标开始的数组,任何一个非空 list 的第一个元素总是 L[0],负数索引从 list 的尾部开始向前计数来存取元素。任何一个非空的 list 最后一个元素总是 L[-1];

有分片功能,两个list可以相加;

append 向 list 的末尾追加单个元素;

insert 将单个元素插入到 list 中;

extend 用来连接 list,使用一个 list 参数进行调用;

append 接受一个参数, 这个参数可以是任何数据类型, 并且简单地追加到 list 的尾部;

index 在 list 中查找一个值的首次出现并返回索引值;

要测试一个值是否在 list 内, 使用 in, 如果值存在, 它返回 True, 否则返为 False ;

remove 从 list 中删除一个值的首次出现;

pop 可以删除 list 的最后一个元素, 然后返回删除元素的值,用索引删除制定位置的值;

2
tuple

tuple是不可变的list,创建了一个tuple就不能以任何方式改变它;

定义tuple是将整个元素集是用小括号括起来,是有序集合;

tuple的索引与list一样从0开始,所以一个非空的tuple的第一个元素总是t[0];

负数索引与 list 一样从 tuple 的尾部开始计数;

与 list 一样分片 (slice) 也可以使用。分割一个 tuple 时, 会得到一个新的 tuple;

没有 append、extend、remove或pop方法以及index方法;

可以使用in来查看一个元素是否存在于tuple 中。

3
dict

dict定义了键和值之间的一一对应关系,每个元素都是一个key-value对;

整个元素集合用大括号括起来,有序集合;

可以通过 key 得到value, 但不能通过vaule获取 key;

在一个 dict中不能有重复的 key, 并且 key 是大小写敏感的;

键可以是数字、字符串或者是元组等不可变类型;

用del使用key可以删除dict中的独立元素;

用clear可以清除dict中的所有元素。

4
set

set是建立一系列无序的,不重复的元素;

创建set的方式是调用set()并传入一个list,list的元素将作为set的元素;

set和dict的唯一区别仅在于没有存储对应的value。

以上是我自己的一些总结,还望大家不吝赐教~(完)


(作者:怪人_杨
来源:http://www.cnblogs.com/ybjourney/p/4767726.html)


 
            
 
            
 
            
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           
 
           

一字一句当思来之不易,感谢作者,传播测试知识、技能与正能量!

光荣之路软件测试培训

官网:http://www.gloryroad.cn/

微信公众号:gloryroadtrain

性能测试QQ群:415987441
软件测试招聘QQ群: 203715128
自动化3群QQ: 371211499


 
光荣之路 更多文章 今天晚上的 linux 公开课- Awk 编程 7月28日(今天)晚上的 linux 公开课- shell编程 8月4日(今天)晚上的 linux 公开课- shell编程 9月1日(本周一)晚8点半,光荣之路Web自动化系列基础课—javascript第二讲 推荐本好书《与机器赛跑》
猜您喜欢 怎么让引导不再是无用小透明 探索 .git 目录,让你真正了理解git 名校毕业重要吗? 深入理解PHP7之zval 释放心中的野“码”——饿了么黑客马拉松大赛接受报名啦!