Loading

10、基本数据类型(set)


10.1、集合:

1、集合元素用大括号括起来,用逗号分割每个元素

2、集合的特点:

(1)集合元素的数据类型只能是不可变数据类型,"列表"、"字典"、"集合"、不能作为集合元素

(2)集合元素是不能重复的,如果有重复也会只保留一个

(3)集合是可变数据类型(可以增加,删除元素,无法修改元素)

(4)集合元素是无序排列的

(5)集合元素可以使用for循环进行遍历


10.2、集合的用法:

1、设置集合:

s=set('hello')

print(s)


s=set(['alex','alex','sb'])

print(s)


s={1,2,3,4,5,6}


2、往集合中添加元素:

s={1,2,3,4,5,6}

s.add('s')

s.add('3')

s.add(3)

print(s)


3、清空集合:

s={1,2,3,4,5,6}

s.clear()

print(s)


4、随机删除集合中的元素并返回删除的元素:

s={'lc',1,2,3,4,5,6}

v=s.pop()

print(v)


5、指定删除集合元素:

s={'lc',1,2,3,4,5,6}

s.remove('sb')

s.remove('hello')

#删除元素不存在会报错

s.discard('ch')

#删除元素不存在不会报错

print(s)


6、集合之间的运算:

#例:学校里的学生报读学校开设的两门课程

python_l = ['lc', 'lc1', 'lc1', 'lc']

linux_l = ['lc', 'lc1', 'lc2']

p_s = set(python_l)

l_s = set(linux_l)

print(p_s, l_s)


(1)求交集:

print("交集", p_s.intersection(l_s))

print("交集", p_s & l_s)

#在学校里两门课程都报的人


(2)求并集:

print("并集", p_s.union(l_s))

print("并集", p_s | l_s)

# 在学校里总共有多少人


(3)求差集:

print('差集', p_s - l_s)

print("差集", p_s.difference(l_s))

# 在学校里只报当前课程的人


print('差集', l_s - p_s)

print("差集", l_s.difference(p_s))

# 在学校里只报当前课程的人


(4)求交叉补集:

rint('交叉补集', p_s ^ l_s)

print('交叉补集', p_s.symmetric_difference(l_s))

#在学校了只报了一门课的人


7、判断子集和父集:

s1={1,2}

s2={1,2,3}

print(s1.issubset(s2))

#s1是s2的子集,返回True

print(s2.issubset(s1))

#s2不是是s1的子集,返回False

print(s2.issuperset(s1))

#s2是s1的父集,返回True


8、更新整个集合:

s1 = {1, 2}

s2 = {1, 2, 3}

s1.update(s2)

#更新多个值

print(s1)


9、不可变集合:

s = frozenset('hello')

print(s)


10、在不在乎列表元素排序的前提下使用set对列表进行去重:

names = ['lc', 'lc', 'lc1']

names = list(set(names))

print(names)
















posted @ 2020-02-16 16:09  云起时。  阅读(745)  评论(0)    收藏  举报