python开发入门——set的使用
介绍
本文主要介绍Python中set的基本知识和使用。
Python中什么是set
dict的作用是建立一组key和一组value的映射关系,dict的key是不能重复的。
有的时候,我们只想要dict的key,不关心key对应的value,目的就是保证这个集合的元素不会重复,这时,set就派上用场了。
set持有一系列元素,这一点和list很像,但是set的元素没有重复,而且是无序的,这点和dict的key很像。
创建set的方式是调用set()并传入一个list,list的元素将作为set的元素:
>>>s=set(['A','B','C'])
可以查看set的内容:
>>>prints set(['A','C','B'])
请注意,上述打印的形式类似list,但它不是list,仔细看还可以发现,打印的顺序和原始list的顺序有可能是不同的,因为set内部存储的元素是无序的。
因为set不能包含重复的元素,所以,当我们传入包含重复元素的list会怎么样呢?
>>>s=set(['A','B','C','C']) >>>prints set(['A','C','B']) >>>len(s) 3
结果显示,set会自动去掉重复的元素,原来的list有4个元素,但set只有3个元素。
Python之访问set
由于set存储的是无序集合,所以我们没法通过索引来访问。
访问set中的某个元素实际上就是判断一个元素是否在set中。
例如,存储了班里同学名字的set:
>>>s=set(['Adam','Lisa','Bart','Paul'])
我们可以用in操作符判断:
Bart是该班的同学吗?
>>>'Bart'ins True
Bill是该班的同学吗?
>>>'Bill'ins False
bart是该班的同学吗?
>>>'bart'ins False
看来大小写很重要,'Bart'和'bart'被认为是两个不同的元素。
Python之set的特点
set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。
set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。
最后,set存储的元素也是没有顺序的。
set的这些特点,可以应用在哪些地方呢?
星期一到星期日可以用字符串'MON','TUE',...'SUN'表示。
假设我们让用户输入星期一至星期日的某天,如何判断用户的输入是否是一个有效的星期呢?
可以用if语句判断,但这样做非常繁琐:
x='???'#用户输入的字符串 ifx!='MON'andx!='TUE'andx!='WED'...andx!='SUN': print'inputerror' else: print'inputok'
注意:if语句中的...表示没有列出的其它星期名称,测试时,请输入完整。
如果事先创建好一个set,包含'MON'~'SUN':
weekdays=set(['MON','TUE','WED','THU','FRI','SAT','SUN'])
再判断输入是否有效,只需要判断该字符串是否在set中:
x='???'#用户输入的字符串 ifxinweekdays: print'inputok' else: print'inputerror'
这样一来,代码就简单多了。
Python之遍历set
由于set也是一个集合,所以,遍历set和遍历list类似,都可以通过for循环实现。
直接使用for循环可以遍历set的元素:
>>>s=set(['Adam','Lisa','Bart']) >>>fornameins: ...printname ... Lisa Adam Bart
注意:观察for循环在遍历set时,元素的顺序和list的顺序很可能是不同的,而且不同的机器上运行的结果也可能不同。
Python之更新set
由于set存储的是一组不重复的无序元素,因此,更新set主要做两件事:
一是把新的元素添加到set中,二是把已有元素从set中删除。
添加元素时,用set的add()方法:
>>>s=set([1,2,3]) >>>s.add(4) >>>prints set([1,2,3,4])
如果添加的元素已经存在于set中,add()不会报错,但是不会加进去了:
>>>s=set([1,2,3]) >>>s.add(3) >>>prints set([1,2,3])
删除set中的元素时,用set的remove()方法:
>>>s=set([1,2,3,4]) >>>s.remove(4) >>>prints set([1,2,3])
如果删除的元素不存在set中,remove()会报错:
>>>s=set([1,2,3]) >>>s.remove(4) Traceback(mostrecentcalllast): File"",line1,in KeyError:4
所以用add()可以直接添加,而remove()前需要判断。
结语
以上就是python开发入门——set的使用的详细内容,更多关于pythonset的资料请关注毛票票其它相关文章!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。