Python 基础:04 容器类型

目录

1. 字符串

f-string:

字符串遍历:

for-else 语句:

字符串切片:

字符串方法:

2. 列表

定义:

列表方法:

3. 元组

定义:

什么时候使用元组存储一组数据?

元组方法: 

4. 字典

特点:

格式:

增删改查:

遍历字典:

名片管理案例: 

字典方法:

运算符:

5. 集合

集合方法:


1. 字符串

f-string:

# f-string
name = "兰克奖"
age = 60
f_string1 = f'奖项:{name},年龄:{age}'

a = 10
b = 20
f_string2 = f'a + b = {a + b}'

字符串遍历:

s = "hello"
for i in s:
    print(i)

for-else 语句:

"""
格式:
for 变量 in 容器:
    重复执行的代码块
else:
    如果for循环不是通过break结束的时候,一定会执行的代码块
"""

s = "hello"
for i in s:
    if i == "m":
        print(1)
        break
else:
    print(2)

字符串切片:

# 截取到最后一个元素
s = "hello"
print(s[1:])

# 从第一个元素开始截取
s = "hello"
print(s[:3])

# 步长
s = "hello python"
print(s[2:10:2])

# 步长(可以为负)
s = "hello python"
print(s[10:2:-2])

# 字符串的反转(逆序)
s = "hello python"
print(s[::-1])

字符串方法:

(1)find方法(定位字符串中某字符的位置,找到之后不再继续查找)
注:从第3个字符开始(包含第3),到第15个字符截止(不包含第15)(左闭右开区间)。字符串的字符排序是从"0"开始。如果查找不到结果为"-1"。
h = "thhcieenable"
v1 = h.find('e',3,15)
v2 = h.find('ee')
v3 = h.rfind('e')
print(v1,v2,v3)
# 返回:5 5 6

(2)index方法(查找子序列)(如果查找不到会报错,建议使用find查找)
h = '8rong8chi'
v = h.index('1')
print('v')
# 返回:
Traceback (most recent call last):
File "C:/Users/Administrator/PycharmProjects/python_s3/D1/s1.py", line 103, in <module>
v = h.index('1')
ValueError: substring not found(查找不到程序报错)

(3)count方法(在字符串中寻找子序列的个数)
注:从第4个字符开始(包含第4),到第16个字符截止(不包含第16)(左闭右开区间)。字符串的字符排序是从"0"开始。
h = 'bokeyuanbokeyuan'
v = h.count('an',4,16)
print(v)
# 返回:2

(4)partition、rpartition、split、rsplit方法(分割)
注:sep=''换行后第二行第一个字符前不出现空格。
h = 'abcacd'
v1 = h.partition('c')
v2 = h.rpartition('c')
v3 = h.split('c')
v4 = h.rsplit('c')
print(v1,'\n',v2,'\n',v3,'\n',v4,sep='')
# 返回:
('ab', 'c', 'acd')
('abca', 'c', 'd')
['ab', 'a', 'd']
['ab', 'a', 'd']

(5)isalpha方法(判断字符串是否只是字母或汉字)
h = '马云mayun'
v = h.isalpha()
print(v)
# 返回:True

(6)isdecimal、isdigit、isnumeric方法(判断字符串是否只含数字(特殊写法的数字))
h1 = '1'
h2 = '1②'
h3 = '1②三'
v1 = h1.isdecimal()
v2 = h1.isdigit()
v3 = h1.isnumeric()
v4 = h2.isdecimal()
v5 = h2.isdigit()
v6 = h2.isnumeric()
v7 = h3.isdecimal()
v8 = h3.isdigit()
v9 = h3.isnumeric()
print(v1,v2,v3,v4,v5,v6,v7,v8,v9)
# 返回:True True True False True True False False True 

(7)islower和isupper方法(判断是否至少有一个英文字符且字符串中的英文字符是否全为小写字母或全为大写字母)
h = 'ab'
v1 = h.islower()
v2 = h.isupper()
print(v1,v2)
# 返回:True False

(8)startswith与endswith方法(判断字符串是否以某个子序列开头或结尾)
h = '打麻将'
v1 = h.startswith('打')
v2 = h.endswith('不')
print(v1,v2)
# 返回:True False

(9)replace方法(将字符串中的内容替换,可以设置替换的个数)
h = 'thhhhhang'
v = h.replace('h','t',3)
print(v)
# 返回:tttthhang 

(10)upper方法(将字符串中所有字母变大写)
h = "thhcieenable"
v = h.upper()
print(v)
# 返回:THHCIEENABLE

(11)lower方法(将字符串中所有字母变小写)
h = 'DouDiZhu'
v = h.lower()
print(v)
# 返回:doudizhu

(12)strip、lstrip、rstrip方法(从左和从右、从左、从右删除指定的字符串)
注:按顺序删除,不能跳过字符顺序(建议多尝试几个其他的字符串找规律)。
h = '中华人民共和国美利坚合众国'
v1 = h.strip('中里利人民国众合利')
v2 = h.lstrip('中里利人民国众合利')
v3 = h.rstrip('中里利人民国众合利')
print(v1,'\n',v2, '\n',v3)
# 返回:
华人民共和国美利坚 
华人民共和国美利坚合众国 
中华人民共和国美利坚

(13)ljust和rjust方法(将字符串设定为指定的长度,并额外添加设定的字符)
h = 'th'
v1 = h.ljust(6,'*')
v2 = h.rjust(6,'#')
# v3 = h.ljust(6)
print(v1,'\n',v2)
# 返回:
th**** 
####th 

(14)center方法(设置字符串宽度为30,并将字符串居中,'华'作为填充)
注:只能是一个字符,大于一个字符会报错。
h = 'doudizhu'
v = h.center(30,'华')
print(v)
# 返回:华华华华华华华华华华华doudizhu华华华华华华华华华华华

(15)join方法(将字符串中的每个字符按照指定分隔符进行拼接)
h = '天王盖地虎'
print(h)
v = '1'.join(h)
print(v)
# 返回:
天王盖地虎
天1王1盖1地1虎

(16)capitlize方法(将字符串首字母改为大写)
h = 'doudizhu'
v = h.capitalize()
print(v)
# 返回:Doudizhu

(17)casefold方法(将字符串中所有字母变小写)(推荐)
h = 'DouDiZhu'
v = h.casefold()
print(v)
# 返回:doudizhu

(18)format方法(格式化,将字符串中的占位符替代为指定的值)(两种写法)
h = 'i am a {s},my name is {n}'
v = h.format(s = 'boy',n = 'th')
print(v)

j = 'i am a {0},my name is {1}'
u = j.format('girl','xx')
print(u)
# 返回:
i am a boy,my name is th
i am a girl,my name is xx

(19)format_map方法(格式化)
h = 'i am a {s},my name is {n}'
v = h.format_map({'s':'boy','n':'th'})
print(v)
# 返回:i am a boy,my name is th

(20)isalnum方法(判断字符串中是否只包含字母和数字)
h = '123abc_'
v = h.isalnum()
print(v)
# 返回:False

(21)expandtabs方法(断句功能)
注:\t为制表符,\n为换行符。
s = 'QQ\tpassword\n123456\t654321\n908\tth\n507\tqwert\n888\tuser\n'
v = s.expandtabs(30)
print(v)
# 返回:
QQ                            password
123456                        654321
908                           th
507                           qwert
888                           user

(22)isprintable方法(判断字符串中是否存在不可显示的字符,如空格,制表符,换行符)
h = 'th\tmy\n'
v = h.isprintable()
print(v)
# 返回:False

(23)isspace方法(判断字符串是否全部是空格(制表符,换行符))
h = '    \t  \n'
v = h.isspace()
print(v)
# 返回:True

(24)title和istitle方法(将字符串变为标题和判断字符串是否为标题)
h1 = 'Process finished with exit code 0'
h2 = h1.title()
v1 = h1.istitle()
v2 = h2.istitle()
print(h2,'\n',v1,'\n',v2)
# 返回:
Process Finished With Exit Code 0 
False 
True 

(25)zfill方法(设置字符串长度并用'0'填充剩余长度不足部分)
h = 'th'
v = h.zfill(6)
print(v)
# 返回:0000th

(26)maketrans和translate方法(制定转译规则和进行转译操作)
注:sep=''换行后第二行第一个字符前不出现空格。
h = '天王盖地虎,宝塔镇河妖'
m = str.maketrans('宝塔镇河妖','小鸡炖蘑菇')
v = h.translate(m)
print(h,'\n',v,sep='')
# 返回:
天王盖地虎,宝塔镇河妖
天王盖地虎,小鸡炖蘑菇

(27)splitlines方法(通过换行符分割) 
注:True保留换行符,False不保留。sep=''换行后第二行第一个字符前不出现空格。
h = 'qwer\nasdf\nzxcv\n'
v1 = h.splitlines(True)
v2 = h.splitlines(False)
print(v1,'\n',v2,sep='')
# 返回:
['qwer\n', 'asdf\n', 'zxcv\n']
['qwer', 'asdf', 'zxcv'] 

(28)swapcase方法(大写转换为小写,小写转换为大写)
h = 'TanHang'
v = h.swapcase()
print(v)
# 返回:tANhANG 

(29)isidentifier方法(判断字符串是否可为合法的标识符)
h = '_aaq'
v = h.isidentifier()
print(v)
# 返回:True 

(30)len方法(显示字符串的长度)
v = len('asdasdasd')
print(v)
# 返回:9

(31)range方法(返回一个可迭代的对象)
注:range(0,100,1)起始值, 结束值,步长。
a = range(0,10,1)
print(a)
for v in a:
    print(v)
# 返回:
range(0, 10)
0
1
2
3
4
5
6
7
8
9

(32)字符串的格式化
h1 = 'i am %s,my job is %s.'%('th','teacher')                             
#打印字符串

h2 = 'percent %.2f'% 99.66                                                
#打印浮点数

h3 = 'i am %(name)s age %(age)d'%{'name':'th','age':20}                   
#字典

h4 = "i am %(pp).2f %%" % {"pp": 88.99, }                                 
#百分数

txt = 'i am \033[42;1m%(name)s\033[0m'%{'name':'th',}            
#改颜色:\033[42;1m%(name)s\033[0m                                         
#将'th'改成绿色   

print('root','密码','QQ',sep=':')                                          
#用':'分隔

h5 = 'i want to {2},time {1}, people {0}'.format(3,'today','eat')          
#format格式化

h6 = 'i want to {thing},time {time}, people {number}'.format(thing = 'eat',time = 'today', number = 3)                                                       
#format格式化

h7 = 'i want to {thing},time {time}, people {number}'.format(**{'thing': 'eat', 'time': 'today', 'number': 3})                                                     
#用字典表示

h8 = 'i want to {:s},time {:s}, people {:d}'.format(*['eat', 'today', 3])  
#用列表表示

(33)字符串编码
str1 = 'hello马云'
print(str1.encode('utf-8'))   #默认utf-8编码
data = str1.encode('utf-8')
print(data.decode('gbk',ignore))   #默认utf-8编码,ignore忽视错误
# 返回:
b'hello\xe9\xa9\xac\xe4\xba\x91'
hello椹浜

2. 列表

定义:

存储多个元素,元素可以是任何类型的。

列表方法:

(1)append方法(追加)
li = [1,2,3,'4','5']
li.append('th')
print(li)
# 返回:[1, 2, 3, '4', '5', 'th']

​
(2)clear方法(清空列表)
li = [1,2,3,'4','5']
li.clear()
print(li)
# 返回:[]


(3)copy方法(拷贝)
li = [1,2,3,'4','5']
v = li.copy()
print(v)
# 返回:[1, 2, 3, '4', '5']


(4)count方法(计算元素出现的次数)
li = [1,2,33,33,'4','5']
v = li.count(33)
print(v)
# 返回:2


(5)extend方法(扩展原列表)
注:参数是可迭代对象。
li = [11, 22, 33, 22, 44]
li.extend(['abc',123])
print(li)
li.extend("hello")
print(li)
# 返回:
[11, 22, 33, 22, 44, 'abc', 123]
[11, 22, 33, 22, 44, 'abc', 123, 'h', 'e', 'l', 'l', 'o']


(6)index方法(根据值获取当前值索引位置)
注:从左至右
li = [11, 22, 33, 22, 44]
v1 = li.index(22)
v2 = li.index(22, 2, 4)
print(v1, v2)
# 返回:1 3


(7)insert方法(在指定索引位置插入元素)
li = [11, 22, 33, 22, 44]
li.insert(3,31)
print(li)
# 返回:[11, 22, 33, 31, 22, 44]


(8)pop方法(删除某个值,并获取删除的值)
注:默认删除最后一个。
li = [11, 22, 33, 22, 44]
v = li.pop(1)
print(v,'\n',li,sep='')
# 返回:
22
[11, 33, 22, 44]


(9)remove方法(删除列表中的指定值,左边优先)
li = [11, 22, 33, 22, 44]
li.remove(22)
print(li)
# 返回:[11, 33, 22, 44]

​
​(10)reverse方法(将当前列表翻转)
li = [11, 22, 33, 22, 44]
li.reverse()
print(li)
# 返回:[44, 22, 33, 22, 11]


(11)sort方法(列表排序)
li = [11, 22, 33, 22, 44]
li.sort()
print(li)
# 返回:[11, 22, 22, 33, 44]


(12)in操作(判断元素是否在列表中)​
li = [1, 12, 9, "age", ["刘漂亮", ["19", 10], "庞麦郎"], "alex", True]
v1 = "刘漂亮" in li
v2 = 'age' in li
print(v1,v2)
# 返回:False True


(13)从列表中取元素​
li = [1, 12, 9, "age", ["刘漂亮", ["19", 10], "庞麦郎"], "alex", True]
v = li[4][1][0]
print(v)
# 返回:19


(14)del(删除列表里的元素)​
li = ['12','zg','gy','th',3]
del li[0:2]
print(li)
# 返回:['gy', 'th', 3]


(15)zip(用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的列表。如果各个迭代器的元素个数不一致,则返回列表长度与最短的对象相同)
print(list(zip(['牛','西兰花','香蕉'],['动物','蔬菜','水果'])))
print(list(zip(['牛','西兰花','香蕉','奶茶'],['动物','蔬菜','水果'])))
print(list(zip(['牛','西兰花','香蕉'],['动物','蔬菜','水果','饮料'])))
# 返回:
[('牛', '动物'), ('西兰花', '蔬菜'), ('香蕉', '水果')]
[('牛', '动物'), ('西兰花', '蔬菜'), ('香蕉', '水果')]
[('牛', '动物'), ('西兰花', '蔬菜'), ('香蕉', '水果')]

3. 元组

定义:

tuple1 = (1,)
tuple2 = (1,2,3)

什么时候使用元组存储一组数据?

当那组数据不允许被修改时!

元组方法: 

(1)将元组转换为字符串​
tu = (3333,8888,6666,['bc'],'q')
s = ''
for i in tu:
    s += str(i)
print(s)
# 返回:333388886666['bc']q


(2)count方法(计算元素出现的次数)​
tu = (3333,8888,6666,['bc'],'q')
v = tu.count(3333)
print(v)
# 返回:1


(3)index方法(索引)​
tu = (333,888,666,['bc'],'q')
v = tu.index(666)
print(v)
# 返回:2


(4)元组的一级元素不支持修改、添加、删除操作​
tu = (333, 888, 666, [('bc', 123), 3], 'q')
tu[3][0][1] = 12
print(tu)
# 返回:TypeError: 'tuple' object does not support item assignment

tu = (333, 888, 666, [('bc', 123), 3], 'q')
tu[3][1] = 12
print(tu)
# 返回:(333, 888, 666, [('bc', 123), 12], 'q')

4. 字典

特点:

(1)存储的数据是一对一对的

(2)必须通过键得到值(key,value)

(3)键是唯一的,不能重复

格式:

字典名 = {key 1:value 1,key 2:value 2,……,key n:value n}

增删改查:

增:字典名[新的key] = 值

删:字典名.pop(已经存在的key)

删除最后一个键值对:字典名.popitem()

清空键值对:字典名.clear()

改:字典名[已经存在的key] = 新的值

查:字典名.[已经存在的key],字典名.[key]

遍历字典:

# 方式一
dict = {'name':'张三',
         'age':18,
         'id':1}
key_list = dict.keys()
for key in key_list:
    value = dict.get(key)
    print(f"{key}={value}")

# 方式二
dict = {'name':'张三',
         'age':18,
         'id':1}
item_list = dict.items()
for key,value in item_list:
    print(f"{key}={value}")

名片管理案例: 

# 创建
card_list = []
while True:
    ctrl = input("是否开始添加:")
    if ctrl == "yes":
        card = {
            "company": "",
            "name": "",
            "tel": ""
        }
        company = input("公司:")
        name = input("姓名:")
        tel = input("电话:")
        for i in card:
            card["company"]=company
            card["name"]=name
            card["tel"]=tel
        card_list.append(card)
        print(card_list)
    else:
        break


# 显示
card_list  = [{'company': '阿里巴巴', 'name': '马云', 'tel': '18888888888'}, {'company': '深信服', 'name': '何朝曦', 'tel': '16666666666'}]
for i in card_list:
    company = i.get("company")
    name = i.get("name")
    tel = i.get("tel")
    print("-"*20)
    print("公司:" + company + "\n" + "姓名:" + name + "\n" + "电话:" + tel)
    print("-"*20)

字典方法:

(1)for循环
注:info.keys生成 key,info.values生成 value,info.items生成键值对。​
info = {
    "k1": 18,
    "k2": True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11,22),
        }
    ],
    "k4": (11,22,33,44)
}
for item1 in info.keys():
    print(item1)
print('\n')
for item2 in info.values():
    print(item2)
print('\n')
for item3 in info.items():
    print(item3)

# 返回:
k2
k1
k4
k3

True
18
(11, 22, 33, 44)
[11, [], (), 22, 33, {'kk3': (11, 22), 'kk1': 'vv1', 'kk2': 'vv2'}]

('k2', True)
('k1', 18)
('k4', (11, 22, 33, 44))
('k3', [11, [], (), 22, 33, {'kk3': (11, 22), 'kk1': 'vv1', 'kk2': 'vv2'}])

​
(2)fromkeys方法(根据序列创建字典,并指定统一的 value)​
v = dict.fromkeys(['th',123],999)
print(v)
# 返回:{123: 999, 'th': 999}

​
(3)get方法(根据 key获取值,若 key不存在,获取到指定的值,默认为 None)​
info = {
    "k1": 18,
    "k2": True,
    "k3": [
        11,
        [],
        (),
        22,
        33,
        {
            'kk1': 'vv1',
            'kk2': 'vv2',
            'kk3': (11, 22),
        }
    ],
    "k4": (11, 22, 33, 44)
}
v1 = info.get('k33333', 3)
v2 = info.get('k3', 333333)
print(v1, '\n', v2)
# 返回:
3 
 [11, [], (), 22, 33, {'kk3': (11, 22), 'kk1': 'vv1', 'kk2': 'vv2'}]


(4)pop和popitem方法(删除并获取值)
注:popitem随机删除一个键值对。​
dic = {
    'k1': 13,
    'k2': 45,
    'j3': 66
}
v1 = dic.pop('k1')
print(dic, v1)
k2, v2 = dic.popitem()
print(dic, k2, v2)
# 返回:
{'k2': 45, 'j3': 66} 13
{'j3': 66} k2 45


(5)setdefault方法(设置值)
注:若 key已存在,则不设置 value,获取原来的 value;若 key不存在,则添加新设置的键值对,获取新的 value。 ​
dic1 = {
    'k1': 13,
    'k2': 45,
    'k3': 66
}
dic2 = {
    'k1': 13,
    'k2': 45,
    'k3': 66
}
v1 = dic1.setdefault('k1', 123)
v2 = dic2.setdefault('j3', 33)
print(dic1, v1)
print(dic2, v2)
# 返回:
{'k2': 45, 'k1': 13, 'k3': 66} 13
{'j3': 33, 'k2': 45, 'k1': 13, 'k3': 66} 33


(6)update方法(更新值) 
注:原字典没有的值将添加进去。​
dic1 = {
    'k1': 13,
    'k2': 45,
    'k3': 66
}
dic2 = {
    'k1': 33,
    'k2': 45,
    'k3': 66
}
dic1.update({'k1':33,'k2':'88'})
dic2.update(k1 = 44, k2 = 55, k4 =99)
print(dic1,'\n',dic2, sep='')
# 返回:
{'k1': 33, 'k3': 66, 'k2': '88'}
{'k4': 99, 'k1': 44, 'k3': 66, 'k2': 55}

字典的简单应用:

1. 简单查看字典内容
# (1)能够查看字典内的所有条目;
# (2)添加新的条目到字典中;
# (3)输入"b"返回到上一级条目,输入"q"结束程序。
db = {
    '北京':{
        '昌平':{},
        '朝阳':{},
        '海淀':{}
    },
    '上海':{},
    '广州':{},
}
path = []
temp = db
while True:
    for item in path:
        temp = temp[item]
    print('可查看的条目:',list(temp.keys()))
    u1 = input('1:查看节点;2:添加节点''\n''请用户输入选项:')
    if u1 == '1':
        u2 = input('请输入查看的条目:')
        path.append(u2)
    elif u1 == '2':
        u3 = input('请输入添加的条目:')
        temp[u3] = {}
    elif u1.lower() == 'b':
        if path:
            path.pop()
    elif u1.lower() == 'q':
        break


2. 三级菜单
# (1)运行程序输出第一级菜单;
# (2)选择一级菜单某项,输出二级菜单,同理输出三级菜单;
# (3)让用户选择是否要返回上一级和退出。
dic = {            #创建字典
    'NBA':
        {'湖人队':
            ['詹姆斯','隆多','鲍尔','英格拉姆','库兹马'],
         '勇士队':
            ['库里','杜兰特','汤普森','格林','考辛斯'],
         '凯尔特人队':
            ['霍福德','斯马特','塔图姆','欧文','海沃德']},
    'CBA':
        {'辽宁队':
            ['郭艾伦','韩德君','贺天举','赵继伟','李晓旭'],
         '广东队':
            ['易建联','周鹏','赵睿','胡明轩','任骏飞'],
         '新疆队':
            ['李根','阿不都沙拉木','可兰白克','俞长栋','王子瑞']}
}
li = []            #创建空字符串用来接收字典一级元素的key
go = True            #死循环变量
while go:
    for i,v in enumerate(dic,1):                       
        print(i,v)
        li.append(v)            #将for循环输出的key轮流添加到列表li中
    u1 = input('请选择联赛:')
    if u1.isdigit():            
        u1 = int(u1)
        li1 = []            #创建空字符串用来接收字典二级元素的key
        while go:
            for i,v in enumerate(dic[li[u1-1]],1):
                print(i,v)
                li1.append(v)         #将for循环输出的key轮流添加到列表li1中
            u2 = input('请选择球队:')            
            if u2 == 'b':            #判断用户输入的是否是返回命令
                break
            else:            
                u2 = int(u2)
            while go:
                for v1 in dic[li[u1-1]][li1[u2-1]]:
                    print(v1)
                u3 = input('>>>')            
                u3 = str(u3)
                if u3 == 'b':             #判断用户输入的是否是返回命令
                    break
                elif u3 == 'q':             #判断用户输入的是否是退出命令
                    go = False
    elif u1.isalpha():
        u1 = u1.lower()
        if u1 == 'i':
            lx = input('联赛:')
            if dic.get(lx) == None:            #判断添加的内容是否存在
                dic[lx] = {}            #不存在则添加新的字典
            zl = input('球队:')
            if dic[lx].get(zl) == None:            #判断添加的内容是否存在
                dic[lx][zl] = []            #不存在则添加新的列表
            while True:
                mc = input('球员:')
                if mc in dic[lx][zl]:
                    print('已存在')
                elif mc == 'q':
                    li.clear()            #清空列表内容
                    break
                else:
                    dic[lx][zl].append(mc)

运算符:

运算符Python 表达式结果描述支持的数据类型
+[1, 2] + [3, 4][1, 2] + [3, 4]合并字符串、列表、元组
*['Hi!'] * 4['Hi!', 'Hi!', 'Hi!', 'Hi!']复制字符串、列表、元组
in3 in (1, 2, 3)True元素是否存在字符串、列表、元组、字典(判断 KEY 是否在字典中)
not in4 not in (1, 2, 3)True元素是否不存在字符串、列表、元组、字典(判断 KEY 是否不在字典中)

5. 集合

集合方法:

(1)add方法(添加)​
s = {1,3,6,8}
s.add(9)
print(s)
# 返回:{1, 3, 6, 8, 9}


(2)clear方法(清空)​
s = {1,3,6,8}
s.clear()
print(s)
# 返回:set()


(3)copy方法(复制)​
s = {1,3,6,8}
s1 = s.copy()
print(s1)
# 返回:{8, 1, 3, 6}


(4)pop方法(随机删除) ​
s = {'th',1,3,6,8,'a','b','c'}
s.pop()
print(s)
# 返回:{3, 'th', 6, 8, 'c', 'b', 'a'}


(5)remove方法(指定删除,元素不存在会报错)​
s = {'th',1,3,6,8,'a','b','c'}
s.remove('th')
print(s)
# 返回:{1, 3, 'a', 6, 8, 'b', 'c'}

​
(6)discard方法(指定删除,元素不存在不会报错)​
s = {'a','b','c','d','e',1,2,3}
s.discard('a')
print(s)
# 返回:{1, 2, 3, 'd', 'b', 'c', 'e'}


(7)交集(intersection或"&")​
s1 = {'th',333,666}
s2 = {'th',666}
print(s1.intersection(s2))
print(s1&s2)
# 返回:{'th', 666}


(8)并集(union或"|")​
s1 = {'th',333,666}
s2 = {'th',666}
print(s1.intersection(s2))
print(s1&s2)
# 返回:{'th', 666}


(10)交叉补集(symmetric_difference或"^")​
s1 = {'th',333,666}
s2 = {'th',666,999}
print(s1.symmetric_difference(s2))
print(s1^s2)
# 返回:{999, 333}

​
(11)求差集之后更新(difference_update)​
s1 = {'th',333,666}
s2 = {'th',666,999}
s1.difference_update(s2)
print(s1)
# 返回:{333}


(12)更新集合(update) ​
s1 = {'th',333,666}
s2 = {'th',666,999}
s1.update(s2)
print(s1)
# 返回:{'th', 999, 666, 333}

s = {'th',333,666}
s.update([999])
print(s)
# 返回:{666, 999, 333, 'th'}


(13)判断两个集合中是否有相同的元素(isdisjoint) 
注:无则返回True,有则返回False。​
s1 = {'th',333,666}
s2 = {1}
print(s1.isdisjoint(s2))
# 返回:True


(14)判断两个集合的子集或父集关系(issubset) ​
s1 = {'th',333,666}
s2 = {'th'}
print(s2.issubset(s1))
# 返回:True

s1 = {'th',333,666}
s2 = {'th'}
print(s1.issuperset(s2))
# 返回:True


(15)冻结集合(frozenset)
注:不可变集合。
s = frozenset('hello')
print(s)
# 返回:frozenset({'l', 'o', 'h', 'e'})


(16)update方法
注:插入整个list、tuple、字符串,打碎插入
s = set([1,2,3,4,5])
s.update('hello')
print(s)
# 返回:{1, 2, 3, 4, 5, 'h', 'o', 'l', 'e'}

 

  • 12
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值