python基础之基本数据类型

时间:2022-05-07 10:20:29

Python3中的基本数据类型

变量的赋值:

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。

在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。

变量的赋值用=,=左边是变量名,右边是存储在变量中的值。

如:

1 a = 100      # 整数型
2 b = 'zhow'   # 字符串
3 c = 520.0    #  浮点型
4 
5 print(a)    # print 是输出函数,在屏幕上打印
6 print(b)
7 print(c)

多个变量赋值:

Python可以同时对多个变量赋值:

a = b = c = 1  # 赋值后并没有创建了3个1的整型对象,而是只创建了一个1的整型对象,a,b,c都指向了1的内存地址

x, y, z= '小红', '小明', '小刚' # 把'小红', '小明', '小刚'对应赋值分配给x, y, z;

基本数据类型

Python3中的基本数据类型有:数字(number),字符串(string),列表(list),元组(tuple),集合(set),字典(dict)

其中可变数据:list,set,dict    不可变数据:number,string,tuple

下面依次介绍:

数字(number)

Python3中支持int,float,bool,complex(复数)

数字支持加(+)减(-)乘(*)除(/)等运算

 

python基础之基本数据类型python基础之基本数据类型
1 a, b = 10, 3
2 
3 c = a + b  #
4 d = a - b  #
5 e = a * b  #
6 f = a / b  #
7 g = a // b  # 整除 取结果的整数部分,小数丢弃
8 h = a % b  # 取余,取a除b的余数
View Code

 

Python还支持复数,复数由实数部分和虚数部分组成,可以用a+bj或者complex(a,b)表示,复数的实部a和虚部b都是浮点型。

字符串(string)

 

 1 # Python中的字符串用单引号 ' 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符。
 2 # 定义name = 'zhow'   name = str('zhow')
 3 # 单引号和多引号并没有区别,当需要特别标注时可以交叉使用
 4 # 如: msg = "I'm a good boy!"
 5 # 多引号什么作用呢?作用就是多行字符串用多引号
 6 msg = """
 7 可怕!为什么七十岁老人被恶毒夫妻推下悬崖却无人制止?
 8 为什么七个上身赤裸的男子殴打妇女却被人拍手叫好?
 9 为什么蛇蝎共处一窝却相安无事?
10 这一切的背后,到底是道德的沦丧,还是人性的泯灭,亦或是社会的悲哀?
11 如果你想了解这一切,请收看动画片《葫芦娃》!!!
12 """
13 msg1 = '可怕!为什么七十岁老人被恶毒夫妻推下悬崖却无人制止?' \
14       '为什么七个上身赤裸的男子殴打妇女却被人拍手叫好?' \
15       '为什么蛇蝎共处一窝却相安无事?' \
16       '这一切的背后,到底是道德的沦丧,还是人性的泯灭,亦或是社会的悲哀?' \
17       '如果你想了解这一切,请收看动画片《葫芦娃》'
18 
19 # 由以上对比发现多引号换行是不需要‘\’的

 

字符串的操作:

 1 #优先掌握的操作:
 2 #1、按索引取值(正向取+反向取) :只能取
 3 # name = 'zhowhen'
 4 # print(name[1])  # h  正向下标从0开始
 5 # print(name[-1])  # n 反向下标从-1开始
 6 #2、切片(顾头不顾尾,步长)
 7 # msg = 'I love Python!'
 8 # print(msg[2:6])  # love
 9 # print(msg[2:6:2])  # lv
10 # print(msg[-7:-1])  # Python
11 # print(msg[7:-1])  # Python
12 #3、长度len
13 # print(len(msg))  # 14   包括空格,符号
14 #4、成员运算in和not in   返回True  False
15 # msg = 'hello world!'
16 # print('hello' in msg)  # True
17 # print('python' in msg)  # False
18 #5、移除空白strip
19 # msg = '     ***la la la hello***    '
20 # print(msg.strip())  # ***la la la hello***  移除左右两边的空格,文章中间的不变
21 # msg = '     ***la la la hello***    '
22 # print(msg.strip(' *'))  # la la la hello  组合使用' *' 移除左右两边的空格和*
23 # mse = '*****user******'
24 # print(mse.strip('*'))  # user  移除左右两边的*
25 # msg = '** * /user is nice  */*** *'
26 # print(msg.strip('* /'))  # user is nice
27 #6、切分split    返回的结果是一个列表
28 IP= '192.168.0.1:8000'
29 res = IP.split(':')
30 print(res)  # ['192.168.0.1', '8000']
31 #7、循环
32 msg = 'Shit happens,but life goes on'
33 for i in msg:  #  for是用于循环,后续会介绍
34     print(i)

其他常用操作:

 1 # 一些常用操作
 2 # 1、strip , lstrip , rstrip 去空格,只去左边,只去右边
 3 # 2、lower, upper  字符串小写,大写
 4 # 3、startswith, endwith  判断字符串开头和结尾的
 5 # 4、format的三种用法
 6 # 5、split, rsplit 分割,
 7 # 6、join,只能连接包含元素全部为字符串类型的列表
 8 # 7、replace  替换字符串的某个字符,类似word查找替换
 9 # 8、isdigit  判断字符串是否是纯数字
10 # 9、istitle  判断首字母是不是大写

示例:

python基础之基本数据类型python基础之基本数据类型
 1 # 1、strip , lstrip , rstrip
 2 print('***hello***'.lstrip('*'))  # hello***
 3 print('***hello***'.rstrip('*'))  # ***hello
 4 # 2、lower, upper  字符串小写,大写
 5 msg = 'AbandoN'
 6 print(msg.lower()) # abandon
 7 print(msg.upper()) # ABANDON
 8 # 3、startswith, endwith  判断字符串开头和结尾的
 9 print(msg.startswith('a'))  # False
10 print(msg.startswith('A'))  # True
11 print(msg.endswith('N'))  # True
12 # 4、format的三种用法
13 print("I am {},i'm {} years old".format('zhow', 18))
14 print("I am {name},i'm {age} years old".format(name='zhow', age=18))
15 print("I am {name},i'm {age} years old".format(**{'name':'zhow', 'age':18}))
16 # 5、split, rsplit 分割,
17 info = '1000:2222:3333'
18 print(info.split(':', 1))  # ['1000', '2222:3333']  默认左边开始等价lsplit
19 print(info.rsplit(':', 1))  # ['1000:2222', '3333']  从右边开始
20 # 6、join,只能连接包含元素全部为字符串类型的列表
21 l = 'd/root/bin/src/bash/start'
22 str_2_list = l.split('/')
23 print(str_2_list)  # ['d', 'root', 'bin', 'src', 'bash', 'start']
24 list_2_str = '/'.join(str_2_list)
25 print(list_2_str)  # d/root/bin/src/bash/start
26 # 7、replace  替换字符串的某个字符,类似word查找替换
27 mge = 'xxx call xxx bitch'
28 print(mge.replace('xxx', 'sb'))  # sb call sb bitch
29 # 8、isdigit  判断字符串是否是纯数字
30 print(mge.isdigit()) # False
31 # 9、istitle  判断首字母是不是大写
32 a = 'Abcd Efg'
33 print(a.istitle()) # True
View Code

补充:

python基础之基本数据类型python基础之基本数据类型
 1 # 补充(了解)
 2 # 1、find,rfind,index,rindex,count
 3 msg = 'hello zhow world !'
 4 print(msg.find('w'))  # 9  返回w的起始位置(左边第一个)
 5 print(msg.rfind('w'))  # 11   返回最右边的起始位置
 6 print(msg.find('zhow',0,3))  # 没有找到返回 -1
 7 print(msg.index('zhow'))    # 没有找到,报错,正常的情况下和find一样
 8 print(msg.count('w'))  #  2  w出现的次数
 9 # 2、center,ljust,rjust,title
10 print('info'.center(50, '='))  # =======================info=======================
11 print('info'.ljust(50, '='))  # info==============================================
12 print('info'.rjust(50, '='))  # ==============================================info
13 print('info'.zfill(50))   # 0000000000000000000000000000000000000000000000info
14 # 3、expandtabs  把字符串中的 tab 符号('\t')转为空格,tab 符号('\t')默认的空格数是 8。
15 print(r'a\tb')              # a\tb
16 print('a\tb')               # a    b
17 print('a\tb'.expandtabs(1)) # a b   转换成一个空格
18 # 4、captalize,swapcase,title
19 print('abc'.capitalize())   # 首字母大写
20 print('Ab'.swapcase())      # 字母大小写交互
21 print('my name is user'.title())    # 全部首字母大写
22 # 5、is数字系列,isdigit,isnumeric,isdecimal
23 num1 = b'4'  # bytes
24 num2 = u'4'  # unicode,python3中无需加u就是unicode
25 num3 = ''  # 中文数字
26 num4 = ''  # 罗马数字
27 print(num2.isdigit())    # True    检测字符串是否只由数字组成。
28 print(num2.isnumeric())  # True    检测字符串是否只由数字组成。只在Unicode里
29 print(num2.isdecimal())  # True   检查字符串是否只包含十进制字符。
30 num5 = ''
31 print(num5.isnumeric())  # True
32 # 6、is 其他
33 print(' '.isspace())    # 判断字符串中是否有空格
34 print('agaga'.isalpha())   # 判断字符串中是否全部是字母
35 print('agaga123'.isalnum())  # 判断字符串是否由字母或数字组成
View Code

常用操作归纳:

- upper()  # 转换字符串中的小写字母为大写。
- title()  # 返回"标题化"的字符串,就是说所有单词都是以大写开始,其余字母均为小写(见 istitle())。
- lower()  # 转换字符串中所有大写字符为小写。
- split()  # 按指定字符或符号分割
- strip()  # 删除字符串字符串左右两边的空格或指定字符.
- rstrip()  # 删除字符串字符串末尾的空格或指定字符.
- lstrip()  # 截掉字符串左边的空格或指定字符。
- max(str)  # 返回字符串 str 中最大的字母。
- min(str)  # 返回字符串 str 中最小的字母。
- join(seq)  # 以指定字符串作为分隔符,将 seq 中所有的元素(的字符串表示)合并为一个新的字符串

列表(list)

# 在[]内用逗号分隔,可以存放n个任意类型的值
# 定义:students = ['egon', 'alex', 'wupeiqi', ]
# students=list(['egon','alex','wupeiqi',])
# 用于标识:存储多个值的情况,比如一个人有多个爱好
# 多维列表,存放多个学生的信息:姓名,年龄,爱好
students_info = [['egon', 18, ['play', ]], ['alex', 18, ['play', 'sleep']]]
print(students_info[0][2][0])  # play   取出第一个学生的第一个爱好 

列表的操作:

1、按索引存取值(正向存取+反向存取):即可存也可以改;超出索引就会报错
2、切片(顾头不顾尾,步长)
3、长度
4、成员判断运算in和not in
5、追加也插入
6、删除
7、从列表中取走一个元素,相当与删除,但有返回值
8、循环
9、合并
10、排序

示例:

python基础之基本数据类型python基础之基本数据类型
 1 list1 = [1, 2, 3, 4, 5, 6]
 2 list2 = ['a', 'b', 'z', 'd', 'e', 'f']
 3 1、按索引存取值(正向存取+反向存取):即可存也可以改;超出索引就会报错
 4 print(list1[5])  # 6
 5 print(list2[-2])  # e
 6 2、切片(顾头不顾尾,步长)
 7 print(list2[0:3:2])  # ['a', 'c']
 8 print(list2[0:3:-1])  # []取空了
 9 print(list2[3:0:-1])  # ['d', 'c', 'b']     -1代表反向取(由后往前)
10 print(list2[-1::-1])  # ['f', 'e', 'd', 'c', 'b', 'a']列表反转
11 3、长度
12 print(len(list1))    # 6
13 4、成员判断运算in和not in
14 print('a' in list2)   # True
15 print(1 not in list1)  # False
16 5、追加也插入
17 list1.append(7)  # 最后的位置添加
18 print(list1)   # [1, 2, 3, 4, 5, 6, 7]
19 list1.insert(2, 10)   # 指定下标位置添加 原来位置的后移
20 print(list1)   # [1, 2, 10, 3, 4, 5, 6, 7]
21 6、删除
22 del list2[2]   # 删除指定下标的值,不存在报错
23 list1.remove(5)  # 删除指定值,不存在报错
24 print(list1)   # [1, 2, 3, 4, 6]
25 print(list2)   # ['a', 'b', 'd', 'e', 'f']
26 7、从列表中取走一个元素,相当与删除,但有返回值
27 res = list2.pop(2)  # 按照索引删除元素并返回
28 resg = list2.pop()  # 删除最后一个元素并返回
29 print(res)         # c
30 print(resg)        # f
31 8、循环
32 for i in list2:
33     print(i)
34 9、合并
35 list2.extend(list1)  # 把list1合并到list2中,从后面追加的方式,list1不变
36 print(list2)     # ['a', 'b', 'c', 'd', 'e', 'f', 1, 2, 3, 4, 5, 6]
37 10、排序
38 list3 = ['6', '5', '4', '3', '2', '1']
39 list3.sort()   # 从小到大
40 print(list3)  # ['1', '2', '3', '4', '5', '6']
View Code

带索引的循环:

list1 = [1, 2, 3, 4, 5, 6]
for index, item in enumerate(list1):
    print(index, item)

其他常用操作:

1、反转
2、计数
3、清空
4、复制
5、查看索引

示例:

python基础之基本数据类型python基础之基本数据类型
 1 names = ['aa', 'bb', 'cc', 'bb', 1, 2, 3, 4]
 2 names.reverse()     # 反转
 3 print(names)
 4 a = names.count('bb')  # 计算个数
 5 print(a)
 6 names.clear()   # 清空列表。相当于把列表的元素全部删除
 7 print(names) 
 8 
 9 names = ['aa', 'bb', 'cc', 'bb', 1, 2, 3, 4]
10 list1 = names.copy()  # 复制
11 # list1 = names[:]    # 复制
12 print(list1)
13 print(names.index('cc'))
View Code

列表常用操作归纳:

- list.append(obj) # 在列表末尾添加新的对象
- list.count(obj)  # 统计某个元素在列表中出现的次数
- list.extend(seq) # 在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)
- list.index(obj)  # 从列表中找出某个值第一个匹配项的索引位置
- list.insert(index, obj)# 将对象插入列表指定位置
- list.pop(obj=list[-1]) # 移除列表中的一个元素(默认最后一个元素),并且返回该元素的值
- list.remove(obj) # 移除列表中某个值的第一个匹配项
- list.reverse()   # 反向列表中元素
- list.sort([func])# 对原列表进行排序 reverse=True表示降序
- list.clear()     # 清空列表
- list.copy()      # 复制列表

元组(tuple)

元祖跟列表类似,称为不可变列表。

元组使用小括号,列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

tup1 = ('Google', 'Runoob', 1997, 2000);
tup2 = (1, 2, 3, 4, 5 );
tup3 = "a", "b", "c", "d";  #  不需要括号也可以
print(type(tup3))

常用方法:

- len(tuple)  # 计算元组元素个数。
- max(tuple)  # 返回元组中元素最大值。
- min(tuple)  # 返回元组中元素最小值。
- tuple(seq)  # 将列表转换为元组。

字典(dict)

 

字典是另一种可变容器模型,且可存储任意类型对象。

字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 ,格式如下所示: 
d = {
    'name': 'zhow',
    'age': 18,
    'hobby': ['beauty', 'travel', 'read']
    'company': {
        'name': 'oldboy',
        'type': 'education',
        'emp_num': 40
    }
}
字典的key必须为python中不可变类型,value可以为任意类型对象

 

常用操作:

1、按key存取值:可改可取,可存
2、长度len
3、成员运算in和not in,判断字典的key
4、删除
5、键keys(),值values(),键值对items()
6、循环
7、变量赋值

示例:

python基础之基本数据类型python基础之基本数据类型
 1 d = {
 2     'name': 'zhow',
 3     'age': 18,
 4     'hobby': ['beauty', 'travel', 'read'],
 5     'company': {
 6         'name': 'oldboy',
 7         'type': 'education',
 8         'emp_num': 40
 9     }
10 }
11 1、按key存取值:可改可取,可存
12 print(d['name'])        # zhow
13 print(d.get('name'))    # zhow   没有不报错为 None
14 print(d['hobby'][1])    # travel
15 print(d['company']['name'])  # oldboy
16 print(d.get('company').get('name'))  # oldboy
17 2、长度len
18 print(len(d))
19 3、成员运算in和not in,判断字典的key
20 print('name' in d)  # 判断key是否在字典里
21 4、删除
22 del d['age']  # 删除d中对应的key和值
23 print(d)
24 print(d.popitem())  # 随机删除返回删除的item元组,('hobby', ['beauty', 'travel', 'read'])
25 print(d.pop('aaa', None))  # 删除指定的key的值   返回value  没有就返回None
26 print(d)
27 5、键keys(),值values(),键值对items()
28 print(d.keys())  # 类似列表 里面值为一个个key
29 print(d.values())  # 类似列表 里面值为一个个value
30 print(d.items())  # 类似列表 里面值为一个个元组
31 6、循环
32 for k, v in d.items():
33     print(k, v)
34 for k in d:
35     print(k, d[k])
36 
37 7、变量赋值
38 d['girlfriends'] = {'苍老师', '波老师', '泷泽萝拉'}
39 print(d)
40 d.update(**{'girlfriends': {'苍老师', '波老师', '泷泽萝拉'}})
41 print(d)
42 补充
43 li = [1, 2, 3]
44 x, y, z = li  # 将列表的值对应赋给x,y,z
45 print(x, y, z)
46 li2 = [1, 2, 3, 4, 5, 6]
47 x, y, z, *_ = li2  # 将列表前面的值对应赋给x,y,z,多余的以切片的方式赋值给_
48 print(x, y, z, _)  # 1 2 3 [4, 5, 6]
49 m = 10
50 n = 11
51 m, n = 11, 10
52 print(m, n)
View Code

字典的其他操作:

1 d.copy()字典浅拷贝
2 d.fromkeys(seq[val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
3 d.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default

示例:

python基础之基本数据类型python基础之基本数据类型
 1 d.copy()字典浅拷贝
 2 e = d.copy()
 3 print(e)
 4 d.fromkeys(seq[val]) 创建一个新字典,以序列 seq 中元素做字典的键,val 为字典所有键对应的初始值
 5 e = {}.fromkeys(['name', 'age', 'sex'], '初始值')
 6 print(e)  # {'name': '初始值', 'age': '初始值', 'sex': '初始值'}
 7 d.setdefault(key, default=None) 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
 8 print(d.setdefault('name', 500))     # key存在,则不改变key对应的值,返回原值
 9 print(d)
10 print(d.setdefault('g', 500))     # key不存在,则增加值,返回增加的值
11 print(d)
View Code

字典的两个运用:

1、基于 setdefault 的小例题,用字典统计下面字符串的个数s = 'hello user user say hello sb sb user sb'
2、对列表L=[1,2,2,3,3,4,5,6,6,7]去重
python基础之基本数据类型python基础之基本数据类型
 1 # 题一
 2 s = 'hello user user say hello sb sb user sb'
 3 words = s.split()
 4 d = {}
 5 for i in words:
 6     if i not in d:
 7         d[i] = 1
 8     else:
 9         d[i] += 1
10 print(d)
11 # 优化版
12 # for i in words:
13 #     d.setdefault(i, words.count(i))
14 # print(d)
15 # 题二
16 L = [1, 2, 2, 3, 3, 4, 5, 6, 6, 7]
17 d = {}.fromkeys(L, '1')
18 print(d)
19 l = list(d.keys())
20 print(l)
View Code

字典常用操作归纳:

 1 - popitem()    # 随机返回并删除字典中的一对键和值(一般删除末尾对)。
 2 - key in dict  # 如果键在字典dict里返回true,否则返回false
 3 - radiansdict.copy()   # 返回一个字典的浅复制
 4 - radiansdict.keys()   # 以类列表返回一个字典所有的键
 5 - radiansdict.items()  # 以类列表返回可遍历的(键, 值) 元组数组
 6 - radiansdict.clear()  # 删除字典内所有元素
 7 - radiansdict.values() # 以类列表返回字典中的所有值
 8 - radiansdict.fromkeys()    # 创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值
 9 - radiansdict.update(dict2) # 把字典dict2的键/值对更新到dict里
10 - radiansdict.get(key, default=None)        # 返回指定键的值,如果值不在字典中返回default值
11 - radiansdict.setdefault(key, default=None) # 和get()类似, 但如果键不存在于字典中,将会添加键并将值设为default
12 - pop(key,default)   # 删除字典给定键 key 所对应的值,返回值为被删除的值。key值必须给出。 否则,返回default值。

 

集合(string)

#集合定义
set1 = {'a', 'b', 'c', 'd', 'e'}
set2 = set([1, 2, 3, 4, 5])
print(set1)
print(set2)
# 集合跟字典类似,只有字典的key,没有字典的value ,所以集合也是无序的,无重复元素的

 

集合操作:

一、集合的运算

# 1、 |        并集          ==>  union  包含a,b集合的所有元素,而且不包含其他元素
# 2、 &        交集          ==>   intersection 包含的元素a,b都有,而且不包含其他元素
# 3、 -        差集          ==>  difference    包含的元素a有b没有
# 4、^         对称差集      ==>   symmetric_difference 包含的元素要么a有b没有,要么b有a没有
# 5、>,>=      父集          ==>  issuperset  a包含b中所有元素,而且还有其他b中没有的元素
# 6、<,<=      子集          ==>   issubset  跟父集相反
# 7、 ==       等于运算      ==>   a,b里面的元素一样
# 8、判断是否没有共同部分    ==> isdisjoint  有False,没有True

示例:

python基础之基本数据类型python基础之基本数据类型
 1 a = {'a', 'b', 'c', 'd', 'e', 'f', 'g'}
 2 b = {'1', '2', '3', '4', 'a', 'b', 'd'}
 3 
 4 # 1、 |        并集          ==>  union  包含a,b集合的所有元素,而且不包含其他元素
 5 print(a.union(b))  # {'1', '2', 'c', 'f', 'e', '3', '4', 'g', 'd', 'a', 'b'}
 6 print(a | b)   # {'1', '2', 'c', 'f', 'e', '3', '4', 'g', 'd', 'a', 'b'}
 7 # 2、 &        交集          ==>   intersection 包含的元素a,b都有,而且不包含其他元素
 8 print(a.intersection(b)) # {'d', 'a', 'b'}
 9 print(a & b)    # {'d', 'a', 'b'}
10 # 3、 -        差集          ==>  difference    包含的元素a有b没有
11 print(a.difference(b))  # {'c', 'e', 'g', 'f'}
12 print(a - b)            # {'c', 'e', 'g', 'f'}
13 # 4、^         对称差集      ==>   symmetric_difference 包含的元素要么a有b没有,要么b有a没有
14 print(a.symmetric_difference(b))  # {'2', '1', 'e', 'f', '3', 'g', '4', 'c'}
15 print(a ^ b)      # {'2', '1', 'e', 'f', '3', 'g', '4', 'c'}
16 # 5、>,>=      父集          ==>  issuperset  a包含b中所有元素,而且还有其他b中没有的元素
17 print(a.issuperset(b))  # False
18 print(a >= b)  # False
19 # 6、<,<=      子集          ==>   issubset  跟父集相反
20 # 7、 ==       等于运算      ==>   a,b里面的元素一样
21 print(a == b)  # False
22 # 8、判断是否没有共同部分    ==> isdisjoint  有False,没有True
23 print(a.isdisjoint(b))   # False
View Code

二、集合的方法

1 update          更新原数据
2 add               添加元素
3 discard          删除元素,没有返回值,不存在不报错
4 remove         删除元素,没有返回值,不存在报错
5 pop               随机删除,有返回值
6 clear             清空集合                  

示例

python基础之基本数据类型python基础之基本数据类型
 1 set1 = {'a', 'b', 'c', 'd', 'e', 'f', 'g'}
 2 update          是否更新原数据
 3 set1.update('h')  # 接收单值
 4 set1.update({'i', 'j', 'k'})  # 接收集合
 5 set1.update(['x', 'y', 'z'])  # 接收列表(元组)
 6 print(set1)
 7 add             添加元素
 8 set1.add('h')  # 只接收不可变的类型
 9 print(set1)
10 discard         删除元素,没有返回值,不存在不报错
11 set1.discard('c') #  删除元素,无返回值
12 print(set1)
13 remove          删除元素,没有返回值,不存在报错
14 set1.remove('h') # 删除元素,没有返回值,不存在报错
15 print(set1)
16 pop             随机删除,有返回值
17 res = set1.pop()
18 print(res)
19 print(set1)
20 clear           清空集合
21 set1.clear()
22 print(set1)   # set()  
23 备注:{}代表的是一个空字典,空集合用set()表示
View Code

去重优化:

# 对列表L=[1,2,2,3,3,4,5,6,6,7]去重
L = [1, 2, 2, 3, 3, 4, 5, 6, 6, 7]
l = list(set(L))
print(l)
# PS:用集合去重,局限性很强
#     1、不能保证原数据类型的顺序
#     2、原数据中包含的元素必须全部为不可变类型

集合常用操作归纳:

- set1 = set({1, 2, 'barry'}) # 创建集合
- set2 = {1, 2, 'barry'}      # 创建集合
- add  # 将元素添加到集合中。如果元素已经存在,这不起作用。
- del set1  # 删除集合
- update # 迭代增加
- clear  # 删除此集合中的所有元素
- remove # 删除一个元素
- pop    # 随机删除一个元素
- issubset    # 子集
- issuperset  # 父集
- union  # 并集。(| 或者 union)
- difference # 差集。(- 或者 difference)
- intersection  # 交集。(&  或者 intersection)
- isdisjoint    # 如果两个集合有一个交点,则返回Flase
- intersection_update  # 用它自己和另一个交集更新一个集合。
- difference_update  # 删除另一个集合中本集合所拥有的所有元素
- symmetric_difference  # 反交集。 (^ 或者 symmetric_difference)