码迷,mamicode.com
首页 > 其他好文 > 详细

变量类型-Set

时间:2018-09-27 12:01:56      阅读:217      评论:0      收藏:0      [点我收藏+]

标签:哈希   int   indexing   判断   lov   values   特点   typeerror   序列   

教程:
    集合是一个无序不重复元素的序列,它的特点是:有的可变,有的不可变,元素无序不可重复!

一:集合的创建

    (1)使用花括号

        set={value1, values2}
        
        注意创建一个空集合的时候不能用{},此时创建的是一个字典

    (2)使用内联函数set()------>可以原地修改的集合

        s = set()
    
    注意:    集合是无序的(集合不是序列类型,则集合也不支持索引和切片),
        打印结果取决于内部存储结构和输出方式

    (3)使用内联函数frozenset()---->hashable 可哈希卡类型
二:集合的索引(不允许)

     File "<ipython-input-5-9b6a789630ee>", line 1, in <module>
        set_1[1]
    TypeError: ‘set‘ object does not support indexing

三:集合的运算

    (1)元素与集合之间的关系

        ‘i‘ in set(‘ilove‘)

    (2)集合a与集合b之间的关系
        
        a == b            判断是否相等
        a < b 或者 a.issubset(b) 判断是否为子集
        a 并 b  ---> a|b 或者 a.union(b)
        a 交 b  ---> a&b 或者 a.intersection(b)
        a 补 b  ---> a-b 或者 a.difference(b)
        a 和 b 的对称差集    a^b 或者 a.symmetric_difference(b)

        
三:集合元素的添加

    (1)方法一:    s.add(x)
    (2)方法二:      s.update(x)    其中x可以是列表,元组,字典

四:集合元素的删除
    
    (1)方法一:    s.remove(x)    元素不存在发生错误
    (2)方法二:      s.discard(x)    元素不存在不会发生错误
    (3)方法三:      s.pop()        随机删除一个元素
    (4)方法四:      s.clear()    清空集合

五:集合内置函数

    len(set)----set元素的总数
    set.add()-----添加
    set.update()--更新
    还包括上面的四个函数
    
CODE:
# -----------------------------------------------------------------------------------------------------#
# 集合的创建
# -----------------------------------------------------------------------------------------------------#
set_1 = set(‘abracadabra‘)  # 创建可变的集合
print("set_1:", set_1)

set_1.add(‘python‘)         # 元素的添加
print("添加Python后set_1:", set_1)

set_2 = set(‘alacazam‘)
print("set_2:", set_2)

set_3 = frozenset(‘faith‘)  # 创建不可变的集合验证元素不可添加
print("创建不可变集合set_3:", set_3)


# -----------------------------------------------------------------------------------------------------#
# 集合的运算
# -----------------------------------------------------------------------------------------------------#
print("set_1 - set_2: ", set_1 - set_2)

print("set_1 | set_2: ", set_1 | set_2)

print("set_1 & set_2: ", set_1 & set_2)

print("set_1 ^ set_2: ", set_1 ^ set_2)


# -----------------------------------------------------------------------------------------------------#
# 集合元素的添加(对于可变集合)
# -----------------------------------------------------------------------------------------------------#

# 方法一

set_2 = set(‘alacazam‘)
set_2.add("faith")
print("添加元素方法一:", set_2)

# 方法二
x = {1, 2, 3, ‘aaa‘}        # 列表
y = (1, 2, 3, ‘aaa‘)        # 元组
z = {1: ‘wang‘, 2: ‘aaa‘}   # 字典--->只添加键值

set_2.update(z)
print("添加元素方法二:", set_2)

# -----------------------------------------------------------------------------------------------------#
# 集合元素的删除
# -----------------------------------------------------------------------------------------------------#

# 方法一
set_2.remove(‘faith‘)
print("删除元素方法一:", set_2)

# 方法二
set_2.discard(‘1‘)
print("删除元素方法二:", set_2)

# 方法三
set_2.pop()

print("删除元素方法三:", set_2)
# 方法三
set_2.clear()
print("删除元素方法四:", set_2)







变量类型-Set

标签:哈希   int   indexing   判断   lov   values   特点   typeerror   序列   

原文地址:https://www.cnblogs.com/faithyiyo/p/python-set.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!