Python第五课

@[枭]


Python第五课


今天讲解了Python的


  集合




集合



 ①性质

 无序+可变
 放在{ }中
 自动去重,其中的元素唯一
 因为无序,所以说不可用切片操作或序列来返回值

集合和字典的唯一区别是,集合没有键值对的配对



 ②创建删除

 创建集合可以直接使用a={3,5}

如遇需要进行转换成集合形式的,需要用到set()函数

set()
创建空集合为x=set()

将列表转换为集合的代码示例如下:

	>>>b=set([0,1,2,3,0,1,2,3,7,8])
	>>>b
	{
     0,1,2,3,7,8}		#自动去重

将集合删除可以直接使用del()函数,这是删除整个集合



 ③元素增删

 元素增加可以使用如下示例方法

这是集合的元素合并

	>>>s={
     1,2,3}
	>>>t={
     4,5,6}
	>>>s.update(t)
	>>>s
	{
     1,2,3,4,5,6}		

这是集合的元素增加

	>>>s={
     1,2,3}
	>>>s.add(4)
	>>>s
	{
     1,2,3,4}

这是集合的元素删除

	>>>s={
     1,2,3,4,5,6}
	>>>s.pop()		#在这里pop()方法删除的是随机一个元素
	1
	>>>s.remove(2)
	>>>s.discard(3) #即使没有这个元素也不会报错
	>>>s
	{
     4,5,6}			#在这里是指定删除一个元素



 ④交并差对称差子集运算

先声明a和b两个集合

	>>>a={
     8,9,10,11,12,13}
	>>>b={
     0,1,2,3,7,8}

 交集的代码例子如下

	>>>a.intersection(b)#方法一
	>>>a&b#方法二
	{
     8}

 并集的代码例子如下

	>>>a.union(b)
	>>>a|b
	{
     0,1,2,3,7,8,9,10,11,12,13}

 差集的代码例子如下

	>>>a.difference(b)
	>>>a-b
	{
     9,10,11,12,13}

 对称差(两个都有的元素就不输出)的代码例子如下

	>>>a^b
	{
     0,1,2,3,7,9,10,11,12,13}

 子集与真子集的代码例子如下

	>>>a<b			#比较x是否为y的子集
	False



 ⑤过滤操作

 使用过滤操作一个重要的函数是

filter(f,seq)

filter是对象,如果需要输出的话需要转换形式

e.g.

	>>>seq=['foo','x41','?!','***']
	>>>def func(x):
		return x.isalnum()	#判断x是否为字母/数字构成,真保留假过滤
	>>>list(filter(func,seq))
	['foo','x41']

你可能感兴趣的:(Python课程,python)