Python 集合

集合(set)是一个无序的,不重复元素的序列

可以使用大括号{}或set()函数来创建集合

空集合必须使用set()来创建,不能使用{}来表示空集合,因为{}表示的是一个空字典

1.add添加元素

(1)语法格式

s.add(x)

备注:x表示将要被添加至集合的元素,如果参数x的值已经存在,将不会被添加

(2)实例

# v = set((1,2,3,4,5,6))      #也可以使用此方法来表示集合
v = {1,2,3,4,5,6}

v.add(100)
v.add(3)

print(type(v))
print(v)

#输入结果如下:
<class 'set'>
{1, 2, 3, 4, 5, 6, 100}

2.update更新元素

(1)语法格式

s.update(x)

备注:x参数要为可迭代的。参数x可以是列表,元组,字典等,如果参数x的值已经存在,将不会被添加

(2)实例

v = {1,2,3,4,5,6}
v1 = [7,8,9]
v2 = {"key1":"value1", "key2":"value2"}
v3 = (11,22,33)
v4 = "maple"

v.update(v1)
print(v)

v.update(v2)
print(v)

v.update(v3)
print(v)

v.update(v4)
print(v)

v.update(3)
print(v)

#输入结果如下:
{1, 2, 3, 4, 5, 6, 7, 8, 9}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'key1', 'key2'}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 'key1', 11, 33, 22, 'key2'}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 11, 'e', 22, 'key2', 33, 'l', 'key1', 'p', 'm', 'a'}
Traceback (most recent call last):
  File "E:/python21/day5/test.py", line 19, in <module>
    v.update(3)
TypeError: 'int' object is not iterable

3.remove移除元素

(1)语法格式

s.remove(x)

备注:参数x表示将被移除的元素。如果元素不存在,则会发生错误

(2)实例

v = {"maple", "hao", "123",2,4,5}

v.remove("maple")
print(v)

v.remove(111)
print(v)

#输出的结果如下:
Traceback (most recent call last):
  File "E:/python21/day5/test.py", line 6, in <module>
    v.remove(111)
KeyError: 111
{2, 4, '123', 5, 'hao'}

4.discard移除元素

(1)语法格式

s.discard(x)

备注:参数x表示将要被移除的元素,discard移除元素,如果元素不存在,不会报错

(2)实例

v = {"maple", "hao", "123",2,4,5}

v.discard("maple")
print(v)

v.discard(111)
print(v)

#输出结果如下:
{2, 4, 5, '123', 'hao'}
{2, 4, 5, '123', 'hao'}

5.pop随机删除元素

(1)语法格式

s.pop()

(2)实例

v = {"maple", "hao", "123",2,4,5}
v.pop()
print(v)

#输出结果如下:
{4, 5, '123', 'maple', 'hao'}

6.len计算集合元素个数

(1)语法格式

len(集合)

(2)实例

v = {"maple", "hao", "123",2,4,5}

print(len(v))

#输出的结果如下:
6

7.clear清除集合元素

(1)语法格式

s.clear()

(2)实例

v = {"maple", "hao", "123",2,4,5}

v.clear()
print(v)

#输出的结果如下:
set()

8.in 判断元素是否存在集合中

(1)语法格式

x in 集合

备注:参数x表示要判断的元素是否存在集合中

(2)实例

v = {"maple", "hao", "123",2,4,5}

flag = "hao" in v
print(flag)

flag1 = "jjj" in v
print(flag1)

#输出结果如下:
True
False

9.for 循环集合中每个元素

(1)语法格式

for item in 集合:

(2)实例

v = {"maple", "hao", "123",2,4,5}

for item in v:
    print(item)
    
#输出的结果如下:
123
2
4
5
maple
hao

10.intersection 交集

intersection() 方法用于返回两个或更多集合中都包含的元素,即交集。

(1)语法格式

集合1.intersection(集合2)

(2)实例

v1 = {"maple", "hao", "123",2,4,5}
v2 = {"hao", 2,3,4,5,6}

result = v1.intersection(v2)

print(result)

#输出的结果如下:
{2, 'hao', 4, 5}

11.union 并集

union() 方法返回两个集合的并集,即包含了所有集合的元素,重复的元素只会出现一次。

(1)语法格式

集合1.union(集合2)

(2)实例

v1 = {"maple", "hao", "123",2,4,5}
v2 = {"hao", 2,3,4,5,6}

result = v1.union(v2)

print(result)

#输出的结果如下:
{2, '123', 4, 5, 3, 6, 'hao', 'maple'}

12.difference 差集

(1)语法格式

difference() 方法用于返回集合的差集,即返回的集合元素包含在第一个集合中,但不包含在第二个集合(方法的参数)中

集合1.difference(集合2)

(2)实例

v1 = {"maple", "hao", "123",2,4,5}
v2 = {"hao", 2,3,4,5,6}

result1 = v1.difference(v2)
print(result1)

result2 = v2.difference(v1)
print(result2)

#输出的结果如下:
{'maple', '123'}
{3, 6}
posted on 2020-07-08 06:38  杨枫哥  阅读(238)  评论(0编辑  收藏  举报