Python3筆記之集合的用法 set的用法

2021-09-10 21:13:16 字數 3348 閱讀 7906

一、平台(windows7 64bit,python3.7)

二、**如下:

#!/usr/bin/env python

# -*- coding:utf-8 -*-

# author:kahn

# list1 = [1, 2, 3, 3, 5, 66, 7, 7, 99] # 這個列表中有重複的3和7

# set1 = set(list1) # 將列表轉成集合,即可去重。

# print(type(set1)) # 列印結果:, 集合的特性是無序的

# print(set1) # 列印結果:,注意是大括號括起來的集合。

# #例子1,取兩個列表的交集

list3 = [1, 2, 3, 5, 66, 71, 991]

list4 = [11, 222, 3, 51, 66, 7, 99]

list3 = set(list3) # 將列表轉換成集合set

list4 = set(list4)

# #交集

result1 = list3.intersection(list4) # 取出兩個列表的交集,list3和4的位置這時可以互換

# result1 = lis3 & list4 # 可以用運算子&這麼寫。結果和上面一樣的

print("兩個列表的交集是:", result1) # 交集輸出結果為:--->這就是列表交叉的地方,兩個列表都有的東西。

# #反向交集(對稱交集) /或叫 反向差集、對稱差集

result7 = list3.symmetric_difference(list4) # 去掉兩個列表的交叉部分後的總和。和交集正好相反

# result7 = list3 ^ list4 # 可以用運算子^這麼寫。結果和上面一樣的

print("反向交集:", result7)

# #並集

result2 = list3.union(list4) # 取出兩個列表的總和,兩個列表的位置仍然可以互換。

# result2 = list3 | list4 # 可以用運算子這麼寫,結果同上一條一樣。

print("兩個列表的並集是:", result2) # 並集輸出結果為:

# #差集

result3 = list3.difference(list4) # 【我有,而你沒有的叫差集】,相對於list3有的,而list4卻沒有的

# result3 = list3 - list4 # 可以用運算子這麼寫,結果同上一條一樣。

print("兩個列表的差集是:", result3) # 輸出結果為

# #子集

list5 = set([3, 7, 2, 1])

list6 = set([3, 7, 2, 1, 3, 6, 9, 0])

result4 = list5.issubset(list6) # 在list6中完整的包含了list5的所有值,通俗收list6是list5的爹

result5 = list5.issuperset(list6)

result6 = list6.issuperset(list5)

print("相對於list5時,list5是list6的子集嗎?", result4) # 輸出結果為true

print("相對於list5時,list5是list6的父集嗎?", result5) # 輸出結果是false

print("相對於list6,list6是list5的父集嗎?", result6) # 輸出結果是true

# #判斷是否有交集

result8 = list5.isdisjoint(list6) # 注意:這個isdisjoint意識是,如果沒有交集就為真。

print("list5和list6有交集嗎?", result8) # 輸出結果為false

list8 = set([100, 200, 222])

list9 = set([101, 201, 223])

result9 = list8.isdisjoint(list9)

print("list8和list9有交集嗎?", result9) # 輸出結果為true

# #集合的新增資料

list10 = set([3, 7, 2, 1])

list10.add(666) # 集合新增單個資料(add方法沒有返回值。直接新增即可。)

print("新增單個資料的結果是", list10) # 輸出結果是。

list10.update([111, 222]) # 集合新增多個資料

print("新增多個資料的結果是", list10) # 輸出結果是

# #集合的刪除資料

list11 = set([3, 7, 2, 1, "kahn"])

list11.remove(1)

print("刪除掉1後的結果是", list11) # 輸出結果是

list11.remove("kahn") # 注意:如果被刪的值不存在,程式會報錯。

list11.discard("kk") # 刪除乙個叫kk的值,當然這個值是不存在的,沒返回值,不報錯。存在的話就刪除掉了

print("刪除掉集合中值為kahn的部分之後的值是", list11) # 輸出結果是

# #集合的長度

list12 = set([3, 7, 2, 1, "kahn"])

result20 = len(list12)

print("list12的長度是", result20)

# #判斷是否是集合的成員

list13 = set([3, 7, 2, 1, "kahn"])

string13 = "kahn"

result21 = string13 in list13

result22 = 100 in list13

result23 = 101 not in list13

print("string13是集合list13的成員嗎?", result21) # 結果返回true

print("數字100是list13的成員嗎?", result22) # 結果返回false

print("數字101是否不是list13的成員?", result23) # 結果返回true。101不在list13裡面,當然肯定不在了。

# #隨機刪除集合裡的乙個值

list14 = set([3, 7, 2, 1, "kahn"])

result24 = list14.pop()

print("隨機刪除集合中的任意乙個值,這個被刪除的值是", result24)

print("被刪除後乙個值後的list14是:", list14)

三、本片部落格學自alex.li老師

python3筆記 函式

建立函式 def 函式名 引數列表 函式語句 函式的命名規則 乙個單詞直接小寫 多個單詞,每個單詞小寫,以下劃線分隔 文件化說明 函式首行加 或 使用函式名.doc 屬性 可以檢視函式文件 help 函式名 callable 函式名 判斷函式是否可以被呼叫 pass 佔位 引數預設引數 預設值最好是...

python3 筆記1 變數

變數 可變的量,區別於常量,常量為固定不可變的量 變數的定義方式 變數名 value 例 a 1 多個變數的命名格式 變數名1,變數名2 value1,value2 例 a,b 1,2 刪除變數名格式 del 變數名 刪除後的變數名再也無法訪問 在定義變數名時盡量做到見名知意,例如 你定義乙個變數為...

python3筆記六 for語句

一 學習內容 二 for in語句 1.格式 for 變數名 in 集合 語句2.邏輯 按順序取集合中的每個元素賦值給變數,再去執行語句,如此迴圈往復 3.舉例 三 for range語句 1.格式 for 變數名 in range start,end step 語句2.邏輯 range start...