1. 程式人生 > >python 元組集合

python 元組集合

字符串 不可 ack div border -c pop b- ont

Python 元組集合

一、元組

  • 元組和列表差不多.也是存一組數.  PS:元組一旦創建便不可更改. 故又稱只讀列表.存放一些不想被人修改的數據.如身份證等信息
  • 語法:
    • name = ("yuhonglin","gouer","xixihaha")
  • 方法:

    只有兩方法.

     1.count  

     2.index

二、集合

  • 定義:由不同元素組成的集合. 集合是一個無序排列可hash值. 可以作為字典的key
  • 作用:
    • 去重. 把一個列表變成集合,就自動去重了(set)
    • 關系測試 測試兩組數據之前的交集\差集\並集等關系
  • 特性:集合的目的是將不同的值存放在一起. 不用的集合間用來做關系運算. 無需糾結於集合中的單個值
    • PS:打印時自動去重
  • 創建集合:
    • S1 = {"a",1,2,3,2,3,1,4}   PS:集合是用逗號就行分割的.
  • 集合的相關方法
定義兩個集合:
  python_list = {"Yuhl","Yulan","Zhaoyizao","Gouer","Liuyaojun"}
  linux_list = {"Yuhl","Liuyaojun"}
#定義空列表.  找出報了python and linux課程的人員.  婁逼寫法
   both_list = []
   for name in linux_list:
       if name in python_list:
           both_list.append(name)

   print(both_list)

#交集    打印出共有的  如果有三個的話.  接著向後寫& 或者intersection
print(python_list&linux_list)
print(python_list.intersection(linux_list))

#並集. 取兩個集合的所有值.
print(python_list|linux_list)
print(python_list.union(linux_list))

#差集. 找出出唯一的. A-B  打印出A中不包含B中的數據.A中包含的數據不打印  B-A打印出B中不包含A中的數據.B中包含的數據不打印.
#PS:可以集合名可以反過來寫.
print(python_list-linux_list)
print(linux_list-python_list)
print(python_list.difference(linux_list))

#對稱差集    找出兩集合中不同的數據. 去掉相同的數據.
print(python_list^linux_list)
print(python_list.symmetric_difference(linux_list))

#子集
print(python_list <= linux_list)
print(python_list.issubset(linux_list))     #   PS:python_list 是不是 linux_list的子集. 是返回Ture 不是返回False

#父集
print(python_list >= linux_list)
print(python_list.issuperset(linux_list))   #   PS:python_list 是不是 linux_list的父集. 是返回Trur 不是返回False 
  • 集合的內置方法
定義一個集合
S1 = {1,2,3}
#update 向集合中插入數據.  只插入不存在的.  如果是字符串會拆開向裏面插入.  更新
S1.update("e")
print(S1)
輸出:{1, 2, 3, ‘e‘}
S1.update((2,3,4))
print(S1)
輸出:{1, 2, 3, 4}
S2 = {"H","W",1}
S1.update(S2)
print(S1)
輸出:{1, 2, 3, ‘H‘, ‘W‘}

#add 將整個加入到集合中
S1.add("hello")
print(S1)
輸出:{1, 2, 3, ‘hello‘}

#pop 隨機刪除集合中的某一個元素
S1.pop()
print(S1)
輸出:{2, 3}

#remove 刪除制定元素. 如果集合中沒有這個會直接報錯.
S1.remove(1)
print(S1)
輸出:{2, 3}

#discard 刪除指定元素. 存在正常刪除. 如果不存在也不抱錯.
S1.discard("w")
print(S1)
輸出:{1, 2, 3}

#clear 清空
S1.clear()
print(S1)
輸出:set()

#copy 淺拷貝
S2 = S1.copy()
print(S2,S1)
輸出:{1, 2, 3} {1, 2, 3}

S1 = {1,2,3,"A","E"}
S2 = {1,2,3}
print(S1.difference(S2))
輸出:{‘A‘, ‘E‘}
print(S1)
輸出:{1, 2, 3, ‘A‘, ‘E‘}

print(S1.difference_update(S2))
輸出:None
print(S1)
輸出:{‘A‘, ‘E‘} 

python 元組集合