python基础包括什么-Python基础-数据类型总结归纳.

作用:去重,关系运算,

#定义集合:

集合:可以包含多个元素,用逗号分割,

集合的元素遵循三个原则:

1:每个元素必须是不可变类型(可hash,可作为字典的key)

2: 没有重复的元素

3:无序

注意集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值

#1 集合定义

s={1,3.1,'aa',(1,23),} # s=set({1,3.1,'aa',(1,23),}) s=set() 空集合

# print(s,type(s))

>>> s={2,3,4}

>>> type(s)

>>> s

set([2, 3, 4])

>>> s={1,2,3,2,2,1}#自动去重(集合中的元素不重复)

>>> s

set([1, 2, 3])

>>> s={1,2,3}#可以通过这样的形式生成一个非空集合

>>> s

set([1, 2, 3])

#2如何生成一个空集合呢?>>> s={}#这样做生成的是空字典,并不是空集合>>> s{}>>> type(s)

可以这样生成空集合>>> s=set([])#将空列表转化成空集合>>> sset([])>>> s=set(())#也可以将空元组转化成空集合>>> sset([])

2》将列表或元组转换成集合>>> l=range(10)>>> l[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> s=set(l)#将列表转化成集合>>> sset([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])>>> l[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> l[0]#列表有序,通过下标访问元素0>>> s[0]#集合无序,不支持下标访问Traceback (most recent call last): File "", line 1, in s[0]TypeError: 'set' object does not support indexing>>> t=(1,2,3,4,3,2)>>> s=set(t)#将元组转换成集合(自动去重)set([1, 2, 3, 4])

#3 set类型对象的内置方法

add()增加一个元素

In [41]: s1 = set(range(10))

In [42]: s1

Out[42]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

In [43]: s1.add(10)

In [44]: s1

Out[44]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

remove()删除一个元素

指定删除set对象中的一个元素,如果集合中没有这个元素,则返回一个错误。

In [47]: s1

Out[47]: {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

In [48]: s1.remove(0)

In [49]: s1

Out[49]: {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

pop()随机删除并返回一个元素

随机删除并返回一个集合中的元素,若集合为空,则返回一个错误。

In [65]: s2 = set(['j','m','i','l','k'])

In [66]: s2.pop()

Out[66]: 'i'

In [67]: s2.pop()

Out[67]: 'k'

discard()删除一个元素

指定删除集合中的一个元素,若没有这个元素,则do nothing。

In [90]: s1

Out[90]: {1, 2, 3, 4, 5, 6, 7, 8, 9}

In [91]: s1.discard(1)

In [92]: s1

Out[92]: {2, 3, 4, 5, 6, 7, 8, 9}

In [93]: s1.discard('abc')

In [94]: s1

Out[94]: {2, 3, 4, 5, 6, 7, 8, 9}

clear()清空一个集合中的所有元素

In [94]: s1

Out[94]: {2, 3, 4, 5, 6, 7, 8, 9}

In [95]: s1.clear()

In [96]: s1

Out[96]: set()

update()更新并集:update()方法没有返回值。

In [111]: s1.update(s2,s3)

In [112]: s1

Out[112]: {1, 2, 3, 4, 5, 8, 9, 10, 'a', 'b', 'c', 'd', 'de', 'f'}

# 4 常用操作+内置的方法

pythons={'李二丫','张金蛋','李银弹','赵铜蛋','张锡蛋','alex','oldboy'}

linuxs={'lxx','egon','张金蛋','张锡蛋','alex','陈独秀'}

# 取及报名python课程又报名linux课程的学员:交集

# print(pythons & linuxs)

# print(pythons.intersection(linuxs))

# 取所有报名老男孩课程的学员:并集

# print(pythons | linuxs)

# print(pythons.union(linuxs))

# 取只报名python课程的学员: 差集

# print(pythons - linuxs)

# print(pythons.difference(linuxs))

# 取只报名linux课程的学员: 差集

# print(linuxs - pythons)

# print(linuxs.difference(pythons))

# 取没有同时报名两门课程的学员:对称差集

# print(pythons ^ linuxs)

# print(pythons.symmetric_difference(linuxs))

# 是否相等

# s1={1,2,3}

# s2={3,1,2}

# print(s1 == s2)

# 父集:一个集合是包含另外一个集合

# s1={1,2,3}

# s2={1,2}

# print(s1 >= s2)

# print(s1.issuperset(s2))

# s1={1,2,3}

# s2={1,2,4}

# print(s1 >= s2)

# 子集

# s1={1,2,3}

# s2={1,2}

# print(s2 <= s1)

# print(s2.issubset(s1))

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值