玖叶教程网

前端编程开发入门

从零开始学Python,Day8.(从零开始学微积分)

今日课题,Python集合使用

一、集合使用

Python中的集合跟数学上的集合是一致的,不允许有重复元素,又因为无序,所以不能直接修改内容,但可以进行交集、并集、差集等运算。

1.1 集合定义

set_obj = {1, 3, 5, 7, 9}

1.2 集合推导式语法创建

set_obj = {item for item in range(1, 10, 2)}
print(set_obj)
// 打印:{1, 3, 5, 7, 9}

1.3 集合内容长度

set_obj = {item for item in range(1, 10, 2)}
length = len(set_obj)
print(length)
// 打印:5

1.4 集合添加元素

set_obj = {item for item in range(1, 10, 2)}
set_obj.add(11)
print(set_obj)
// 打印:{1, 3, 5, 7, 9, 11}

1.5 集合删除元素-随机

通过pop随机移除一个元素,返回被移除的元素,原集合也会被修改。

如果集合为空会抛错:KeyError

set_obj = {item for item in range(1, 10, 2)}
remove_item = set_obj.pop()
print(remove_item, set_obj)
// 打印:1 {3, 5, 7, 9}

1.6 集合删除元素-指定

通过discard移除一个元素,成功返回None,原集合也会被修改。

如果集合没有该元素,也返回None,不会报错

set_obj = {item for item in range(1, 10, 2)}
set_obj.discard(9)
print(set_obj)
// 打印:{1, 3, 5, 7}

1.7 集合删除元素-指定

通过remove移除一个元素,成功返回None,原集合也会被修改。

如果元素不存在于集合中会抛错:KeyError

set_obj = {item for item in range(1, 10, 2)}
remove_item = set_obj.remove(1)
print(remove_item, set_obj)
// 打印:None {3, 5, 7, 9}

1.8 集合拷贝

set_obj = {item for item in range(1, 10, 2)}
obj = set_obj.copy()
print(obj)
// 打印:{1, 3, 5, 7, 9}

1.9 集合清空

set_obj = {item for item in range(1, 10, 2)}
set_obj.clear()
print(set_obj)
// 打印:set()

1.10 集合转数组

set_obj = {item for item in range(1, 10, 2)}
obj = list(set_obj)
print(obj)
// 打印:[1, 3, 5, 7, 9]

1.11 数组转集合

arr = [1, 3, 5, 7, 9]
obj = set(arr)
print(obj)
// 打印:{1, 3, 5, 7, 9}

1.12 集合的遍历

set_obj = {item for item in range(1, 10, 2)}
for item in set_obj:
    print(item)

1.13 集合的并集

关键字:|,它会返回一个新的集合,效果等同于union

set_obj1 = {item for item in range(1, 10, 2)}
set_obj2 = {item for item in range(0, 10, 2)}
un1 = set_obj1 | set_obj2
print(un1)
// 打印:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

关键字:union,它会返回一个新的集合

set_obj1 = {item for item in range(1, 10, 2)}
set_obj2 = {item for item in range(0, 10, 2)}
un1 = set_obj1.union(set_obj2)
print(un1)
// 打印:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

关键字:update,它会在原集合上进行修改,并且参数可以是list也可以是set

set_obj1 = {item for item in range(1, 10, 2)}
arr = {item for item in range(0, 10, 2)}
set_obj1.update(arr)
print(set_obj1)
// 打印:{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

1.14 集合的交集

关键字:&,它会返回一个新的集合,效果等同于intersection

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
un1 = set_obj1 & set_obj2
print(un1)
// 打印:{9, 3, 5}

关键字:intersection,它会返回一个新的集合

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
un1 = set_obj1.intersection(set_obj2)
print(un1)
// 打印:{9, 3, 5}

关键字:intersection_update,它会在原集合上进行修改

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
set_obj1.intersection_update(set_obj2)
print(set_obj1)
// 打印:{9, 3, 5}

1.15 集合的差集

关键字:-,它会返回一个新的集合,效果等同于difference

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
un1 = set_obj1 - set_obj2
print(un1)
// 打印:{1, 7}

关键字:difference,它会返回一个新的集合

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
un1 = set_obj1.difference(set_obj2)
print(un1)
// 打印:{1, 7}

关键字:difference_update,它会在原集合上进行修改

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
set_obj1.difference_update(set_obj2)
print(set_obj1)
// 打印:{1, 7}

1.16 集合的对称差集

简单来说就是找出两者之间不同的数据

关键字:^,它会返回一个新的集合,效果等同于symmetric_difference

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
un1 = set_obj1 ^ set_obj2
print(un1)
// 打印:{0, 1, 7, 8}

关键字:symmetric_difference,它会返回一个新的集合

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
un1 = set_obj1.symmetric_difference(set_obj2)
print(un1)
// 打印:{0, 1, 7, 8}

关键字:symmetric_difference_update,它会在原集合上进行修改

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {0, 3, 5, 8, 9}
set_obj1.symmetric_difference_update(set_obj2)
print(set_obj1)
// 打印:{0, 1, 7, 8}

1.17 集合的子集

关键字:<=,它会返回一个布尔标识,说明当前对象是否是参数的子集

效果等同于使用:issubset

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {1, 3, 5}
un1 = set_obj2 <= set_obj1
print(un1)
// 打印:True

关键字:issubset,它会返回一个布尔标识,说明当前对象是否是参数的子集

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {1, 3, 5}
un1 = set_obj2.issubset(set_obj1)
print(un1)
// 打印:True

1.18 集合的超集

关键字:>=,它会返回一个布尔标识,说明当前对象是否是参数的超集

效果等同于使用:issubset

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {1, 3, 5}
un1 = set_obj1 >= set_obj2
print(un1)
// 打印:True

关键字:issubset,它会返回一个布尔标识,说明当前对象是否是参数的超集

set_obj1 = {1, 3, 5, 7, 9}
set_obj2 = {1, 3, 5}
un1 = set_obj1.issuperset(set_obj2)
print(un1)
// 打印:True

今日完成,打完手工!

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言