python_day07_集合类型与字符编码

一、集合

1.基本使用

(1)用途:关系运算、去重

(2)定义方式:{}内用逗号分开多个元素,每一个元素都必须是不可变(即可hash)类型

强调:

a.集合内的元素都必须是不可变(即可hash)类型

b.集合内的元素是无序的,并不能通过索引来取值

c.集合内的元素不能重复

s={1,3,"hello"}     #s=set({1,3,"hello"})

print(type(s))

2.单纯的用集合去重,需要注意的问题是

(1)去重的目标所包含的值必须都是为不可变类型

(2)去重的结果会打乱原来的顺序

#names=["Namy","Brooke","Sauro","Luffy","Luffy","Brooke"]
#s=set(names)
#names=list(s)
#print(names)

3.常用操作和内置方法

(1)优先掌握的操作

a.长度len

print(len(names))

b.成员运算in和not in

print("Luffy" in names)

*****重点:

当没有集合的时候,取出两个列表中都有的元素的方法:

names1={"Luffy","Namy","Brooke","Sauro","Boss","Boost"}
names2={""Luffy,"Brooke","Boss","Sun","Moon"}
names1=["Luffy","Namy","Brooke","Sauro","Boss","Boost"]
names2=[""Luffy,"Brooke","Boss","Sun","Moon"]
#list=[]                                    #创建一个空列表
#for name in names1:               #for循环把names1中的依次变量赋值给name
#    if name in names2:             #判断name是否在列表names2中
#        print(name)              
#       list.append(name)            #把name添加进空列表list中
#print(list)

当没有集合的时候,取出两个列表中的不同的部分思路跟上边一样,下边是有集合之后的操作方法:

names1={"Luffy","Namy","Brooke","Sauro","Boss","Boost"}
names2={""Luffy,"Brooke","Boss","Sun","Moon"}

   | 并集   #前后顺序改变没有任何影响
print(names1|names2)
print(names1.union(names2))

   & 交集   #前后顺序改变没有任何影响
print(names1&names2)
print(names1.intersection(names2))

   -  差集    #前后位置对调,结果不同
print(names1-names2)
print(names2-names1)
print(names1.difference(names2))
print(names2.difference(names1))

   ^ 对称差集  #前后顺序改变不会改变结果
print(names1^names2)
print(names2^names1)
print(names1.symmetric_difference(names2))

  ==
print(names1==names2)   #False

  >,>=   父集
print(names1>names2)   #False  (names1包含names2)
print(names1.issuperset(names2))

   <,<=  子集(被包含的关系)
print(names2<names1)   #True

4.该类型总结

(1)存一个值或者多个值

        可以存多个值,但是值必须都是不可变类型

(2)有序或者无序

         集合是无序的

(3)可变或者不可变

        set集合是可变类型

#s={1,2,3}

#print(id(s))
#s.add(4)

#print(s)

#print(id(s))

5.集合的去重

单纯的用集合去重,需要注意的问题是

(1)去重的目标所包含的值必须都是不可变类型

(2)去重的结果会打乱原来的顺序

stu_info=[
{'name':'namy','age':18,'sex':'female'},
{'name':'luffy','age':18,'sex':'male'},
{'name':'luffy','age':18,'sex':'male'},
{'name':'brooke','age':999,'sex':'male'},
{'name':'brooke','age':999,'sex':'female'},
]

new_list=[]

for info in stu_info:

     if info not in new_list:

         new_info.append(info)

print(new_info)

猜你喜欢

转载自www.cnblogs.com/Smart1san/p/9123285.html
今日推荐