python中的元組和集合


一、元組
元組的屬性:有序不可改,可以通過下標獲取元素
1、元祖命名可以用(),只有一個元素的時候要加逗號
L3=()
L2=(1,)
L1=(1)
print(type(L3))
print(type(L2))
print(type(L1))


<class 'tuple'>
<class 'tuple'>
<class 'int'>

  

2、有序可以通過下標獲取元素,且可以循環:

yuanzu=('test',1,12,12.22)
print(yuanzu[0])
# test

print(yuanzu[-1])
# 12.22


for i in yuanzu:
    print(i)
# test
# 1
# 12
# 12.22 

  


3、可用的方法如下:
L2=('test',1,12,12.22,1)
print(L2.count(1)) #獲取元素出現的次數
2
print(L2.index('test')) #獲取元素對應的下標
0

  

二、集合
#集合天生可以去重
#集合是無序的
1、集合的命名,空集合不可以用{}
s2 = set() #空集合
s = {1,2,3,4,5,6,7,7,7,6,6,1,1} #集合

  

2、常用的方法
1)強轉為set
l = [1,2,3,4,5,6,7,7,7,6,6,1,1]
l = set(l)
print(l)
{1, 2, 3, 4, 5, 6, 7}

  


2)添加元素
s = {1,2,3,4,5,6,7,7,7,6,6,1,1} #集合
s.add(8) #添加元素
print(s)
{1, 2, 3, 4, 5, 6, 7, 8}

  


3)將一個集合添加到另一個集合中
s = {1,2,3,4,5,6,7,7,7,6,6,1,1} #集合
s.update({'MLing',11,100}) #把另外一個集合加入這個集合里面
print(s)
{1, 2, 3, 4, 5, 6, 7, 'MLing', 100, 11}

  


4)刪除指定的元素
stu={1, 2, 3, 4, 5, 6, 7, 'MLing', 100, 11}
stu.remove(4) #刪除指定的元素
print(stu)
{1, 2, 3, 5, 6, 7, 100, 11, 'MLing'}

  


3.關系方法:
關系測試,交集、並集、差集、對稱差集
1)取交集:都存在的
l1 = range(0,11) #學了自動化的學生
l2 = [2,4,5,6] #學性能的學生
l1 = set(l1)
l2 = set(l2)
print(l1 & l2) #取交集,就是兩個集合里面相同的元素
print(l1.intersection(l2))

{2, 4, 5, 6}
{2, 4, 5, 6}

  

2)取並集

l1 = range(0,11) #學了自動化的學生
l2 = [2,4,5,6] #學性能的學生
l1 = set(l1)
l2 = set(l2)
print(l1.union(l2)) #並集,就是把兩個集合合並到一起
print(l1 | l2)

{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}

  

3)取差集

l1 = range(0,11) #學了自動化的學生
l2 = [2,4,5,6] #學性能的學生
l1 = set(l1)
l2 = set(l2)
print(l1 - l2 )#差集,在a集合里面存在,在b集合里面不存的
print(l1.difference(l2))

{0, 1, 3, 7, 8, 9, 10}
{0, 1, 3, 7, 8, 9, 10}

  

4)對稱差集
l1 = range(0,11) #學了自動化的學生
l2 = [2,4,5,6] #學性能的學生
l1 = set(l1)
l2 = set(l2)
print(l1 ^ l2) #對稱差集,把a集合和b集合里面相同的元素去掉,剩下的
print(l1.symmetric_difference(l2))

{0, 1, 3, 7, 8, 9, 10}
{0, 1, 3, 7, 8, 9, 10}

  

5)判斷子集和父集

l1 = range(0,11) #學了自動化的學生
l2 = [2,4,5,6] #學性能的學生
l1 = set(l1)
l2 = set(l2)
print(l1.issuperset(l2)) #判斷a集合是不是b集合的父集
print(l2.issubset(l1)) #判斷a集合是不是b集合的子集

True
True

  

 



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM