请稍候,加载中....

集合类型

集合是一组不重复的且为不可变类型元素组成的无序多项集

集合定义

# 集合定义
# 集合用{}包含一组数据
sets = {"a", "b", "c", "d"}
# 空集合,一对空{}定义的为空字典,因此空集合由set()定义
empty_set = set()
# 使用set可以将列表、元组、字典等类型转换为集合类型
# 将列表转换为集合
lists1 = [1,2,3,4]
my_sets = set(lists1)
# 集合的每一项必须是不可变类型
lists1 = [{"a":"A", "b":"B"}, [1,2,3,4]]
my_sets = set(lists1)

集合的无序性

 集合元素之间是无序的,两个集合即使顺序不一样,只要元素相同,两个集合相等

# 集合是无序的
# sets1与sets2是相等的集合
sets1 = {1, 2, 3, 4, 5, 6}
sets2 = {6, 5, 4, 3, 2, 1}

# 集合是不能用切片取值的
s = sets1[0] # 错误

# 但是集合的成员存储是有顺序的
while sets1:
    print(sets1)

集合元素的唯一性

# 集合的唯一性
# 集合包含的项不能重复
sets1 = {1, 2, 3, 4, 5, 6, 6}
# 得到的集合是{1, 2, 3, 4, 5, 6}, 重复的6会只保留一个
lists = [1, 2, 3, 3, 4, 4]
# lists转换为集合类型后,会筛选重复项
mysets = set(lists)
print(mysets)
# 输出 {1, 2, 3, 4}

# 集合去重复特性的应用
# 爬虫经常使用集合的这种特性,来过滤爬取url,防止反复爬取
url = ["http://www.python-xp.com/1", "http://www.python-xp.com/2", "http://www.python-xp.com/1"]
url = set(url)
print(url)

集合运算

集合之间可以进行交集、并集、差集、对称差集运算

# 定义集合
set1 = {1,2,3,4,5,6}
set2 = {0,2,4,6}

# 差集
set1 - set2
set2 - set1

# 并集
set1 | set2

# 交集
set1 & set2

# 对称差集
set1 ^ set2

语法练习

# 练习一:
# 请找出同时报了两门课程的同学
python_students = ["Tom", "Jack", "John", "Carl", "Rose"]
java_students = ["John", "Carl"]

# 练习二:
# 这是全班同学名单
students = ["Tom", "Jack", "John", "Carl", "Rose", "Willam", "Mary"]
# 这是Tom的好友名单
tom_friends = ["Tom", "Jack", "John"]
# 这是john的好友名单
john_friends = ["Carl", "Rose"]
# 找出既不是Tom也不是John的好友同学名单

查看集合内置方法


Python学习手册-