1. 程式人生 > >python_day07_集合類型與字符編碼

python_day07_集合類型與字符編碼

class 內置 列表 一個 name iss 重復 方式 info

一、集合

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)

python_day07_集合類型與字符編碼