您的位置:首页 > 编程语言 > Python开发

Python基础入门(十一)- 集合set

2017-04-20 14:48 429 查看
1、什么是set
     1)与dict(字典)区别:
            dict的作用是建立一组
key 和一组 value 的映射关系,dict的key是不能重复的。
             set
持有一系列元素,这一点和 list 很像,但是set的元素没有重复,而且是无序的,这点和 dict 的 key很像。

    2)创建
set 的方式
 
       调用 set() 并传入一个 list,list的元素将作为set的元素:
 
      如:
s = set(['A', 'B', 'C'])

  

>>> print s
set(['A','B','C'])


   注意:set内部存储的元素是无序的。

 
  3)去重性
 
      set不能包含重复的元素,所以,当我们传入包含重复元素的
list ,set会自动去掉重复的元素
 
  例子:
 
          


2、


访问set

 
     set内部存储的元素是无序的。所以访问
set中的某个元素实际上就是判断一个元素是否在set中。
 
      通过“ in”操作符判断
 
      例子:


s = set(['Adam', 'Lisa', 'Bart', 'Paul'])


 
       >>> 'Bart' in s
True
>>>'Bill'
in s
False
>>>'bart'
in s
Flase
        
        
    例子:
        由于上述set不能识别小写的名字,请改进set,使得'adam'和'bart'都能返回True
        解答:
         


3、

set的特点

      第一、

set的内部结构和dict很像,唯一区别是不存储value,因此,判断一个元素是否在set中速度很快。

      第二、

set存储的元素和dict的key类似,必须是不变对象,因此,任何可变对象是不能放入set中的。

      第三、

set存储的元素也是没有顺序的

应用
 
     星期一到星期日可以用字符串'MON', 'TUE', ... 'SUN'表示。判断用户的输入是否是一个有效的星期呢? 

 step1:可以创建一个set,包含'MON'~'SUN'

weekdays = set(['MON', 'TUE', 'WED', 'THU', 'FRI', 'SAT', 'SUN'])
# 用户输入的字符串

step2:
再判断输入是否有效
if x in weekdays:
print 'input ok'
else:
print 'input error'
例子:
月份也可以用set表示,请设计一个set并判断用户输入的月份是否有效。
月份可以用字符串'Jan', 'Feb', ...表示。    解答:


4、遍历set
 
   直接使用 for 循环可以遍历 set 的元素:
    >>> s=set(['Adam','Lisa','Bart'])
    >>>for name in s:
    .....    print name
例子:请用
for 循环遍历如下的set,打印出 name: score 来。
s=set([('Lisa',85)('Adam',95)('Bart',59)])
for x in s:
print x

    打印出:  
('Lisa',85)
('Adam',95)
('Bart',59)


    利用的tuple的元素位置打印出name:score样式
    


5、更新set
    set存储的是一组不重复的无序元素更新set有两种情况:
 
    一、把新的元素添加到set中,添加用add()方法
 
     二、把已有元素从set中删除,删除用remove()方法
例子:
s = set([1, 2, 3])


 添加:  s.add(4)
      print s ==> set([1,2,3,4])
  删除:s.remove(2)      
     print s ==> set([1,3,4])

注意:
 用add()可以直接添加元素,而remove()前需要判断。

练习:针对下面的set,给定一个list,对list中的每一个元素,如果在set中,就将其删除,如果不在set中,就添加进去。
s=set(['Adam','Paul'])
L=['Adam','Lisa','Bart','Paul']


解答:
    
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python 语言 函数
相关文章推荐