python 字符串交集_Python序列--集合(set)

集合

集合用于保存不重復元素。

- 集合和列表非常相似

- 不同點:

1.集合中只能存儲不可變對象

2.集合中存儲的對象是無序(不是按照元素的插入順序保存)

3.集合中不能出現重復的元素

d345181be8344faec6fa850002f49cf3.png

集合的所有元素都放在一對”{ }” 中,兩個相鄰的元素之間用”,”分隔。

集合最好的應用就是去掉重復元素,因為集合中的每一個元素都是唯一的。

可以使用大括號 { } 或者 set() 函數創建集合,注意:創建一個空集合必須用 set() 而不是 { },因為 { } 是用來創建一個空字典。

集合的創建:

1. 直接使用‘{ }’創建集合。創建set集合可以像列表,元組,字典一樣。直接將集合給變量從而實現創建集合。

語法格式: setname = {element 1 , element 2,element 3, ... ,element n}

# setname : 表示集合名稱。

# element 1 , element 2,element 3, ... ,element n : 表示集合中的元素,沒有個數限制,只要是python支持的數據類型都可以。

*注意:1.在創建集合時,如果輸入重復的元素,將自動保存最后一個。

2.由于集合時無序的,所以每次輸出時的元素順序可能都不相同。

示例:

python = {'綺夢','冷伊一','香凝','梓軒'} # 保存選擇Python語言的學生姓名

print('選擇Python語言的學生有:',python) # 輸出選擇Python語言的學生姓名

c = {'冷伊一','零語','梓軒','圣博'} # 保存選擇C語言的學生姓名

print('選擇C語言的學生有:',c) # 輸出選擇C語言的學生姓名

輸出:

選擇Python語言的學生有: {'香凝', '梓軒', '冷伊一', '綺夢'}

選擇C語言的學生有: {'圣博', '梓軒', '冷伊一', '零語'}

2. 又或者:使用set()函數創建集合,將列表,元組等其他可迭代對象轉換為集合。

python = set(['綺夢','冷伊一','香凝','梓軒']) # 保存選擇Python語言的學生姓名

print('選擇Python語言的學生有:',python) # 輸出選擇Python語言的學生姓名

c = set(['冷伊一','零語','梓軒','圣博']) # 保存選擇C語言的學生姓名

print('選擇C語言的學生有:',c) # 輸出選擇C語言的學生姓名

輸出:

選擇Python語言的學生有: {'綺夢', '梓軒', '冷伊一', '香凝'}

選擇C語言的學生有: {'梓軒', '圣博', '冷伊一', '零語'}

集合的添加和刪除

1. 向集合添加元素。使用add()方法實現

語法格式:setname.edd(element)

# setname: 表示要添加元素的集合。

# element:表示要添加的元素內容,只能使用字符串,數字,布爾類型的True或者False及元組等不可變對象。不可使用列表,字典等可變對象。

例:

dictionary = set(('一個','兩個'))

dictionary.add('包子')

print(dictionary)

輸出:

{'兩個', '包子', '一個'}

注意:add()方法只能一次添加一個元素。

2. 從集合中刪除元素。使用dal()方法實現

可以使用del命令刪除整個集合,也可以使用集合的pop()方法或者remove()方法來刪除一個元素,或者使用集合對象的clear()方法清空集合,即刪除集合中的所有元素,使其變成一個空的集合。

例:

python = set(['綺夢','冷伊一','香凝','梓軒']) # 保存選擇Python語言的學生姓名

python.add('零語') # 添加一個元素

print('選擇Python語言的學生有:',python,'') # 輸出選擇Python語言的學生姓名

c = set(['冷伊一','零語','梓軒','圣博']) # 保存選擇C語言的學生姓名

c.remove('零語') # 刪除指定元素

print('選擇C語言的學生有:',c) # 輸出選擇C語言的學生姓名

輸出:

選擇Python語言的學生有: {'梓軒', '冷伊一', '零語', '綺夢', '香凝'}

選擇C語言的學生有: {'圣博', '冷伊一', '梓軒'}

注意:使用集合remove()方法時,如果指定的內容不存在,將出現異常。所以在刪除指定元素前,最好先判斷其是否存在。

要判讀指定內容是否存在可以使用 in 關鍵字實現。

如:

s = {'1','2','3','4','5','6'}

i = input('請輸入一個數字:')

if i in s:

print(i,'在集合中')

else:

print(i,'不在集合中')

輸出

請輸入一個數字:9

9 不在集合中

例:

>>>s = {'apple','orange','apple','pear','banana','orange'}

>>>'origin' in s

>>>True

>>>'peach' in s

>>>False

3. 集合的交集,并集和差集運算

交集運算:使用“&”符號。

并集運算:使用“|”符號。

差集運算:使用“-”符號。

對稱差集運算:使用“^”符號。

實例:

python = set(['綺夢','冷伊一','香凝','梓軒']) # 保存選擇Python語言的學生姓名

c = set(['冷伊一','零語','梓軒','圣博']) # 保存選擇C語言的學生姓名

print('選擇Python語言的學生有:',python) # 輸出選擇Python語言的學生姓名

print('選擇C語言的學生有:',c) # 輸出選擇C語言的學生姓名

print('交集運算:',python & c) # 輸出既選擇了Python語言又選擇C語言的學生姓名

print('并集運算:',python | c) # 輸出參與選課的全部學生姓名

print('差集運算:',python - c) # 輸出選擇了Python語言但沒有選擇C語言的學生名

輸出:

選擇Python語言的學生有: {'梓軒', '綺夢', '冷伊一', '香凝'}

選擇C語言的學生有: {'零語', '梓軒', '圣博', '冷伊一'}

交集運算: {'梓軒', '冷伊一'}

并集運算: {'梓軒', '圣博', '冷伊一', '綺夢', '零語', '香凝'}

差集運算: {'綺夢', '香凝'}

fc9526e12b50c038ca575521ae319d6a.png

集合內置方法完整列表

add()

為集合添加元素

clear()

移除集合中的所有元素

copy()

拷貝一個集合

difference()

返回多個集合的差集

difference_update()

移除集合中的元素,該元素在指定的集合也存在。

discard()

刪除集合中指定的元素

intersection()

返回集合的交集

intersection_update()

返回集合的交集。

isdisjoint()

判斷兩個集合是否包含相同的元素,如果沒有返回 True,否則返回 False。

issubset()

判斷指定集合是否為該方法參數集合的子集。

issuperset()

判斷該方法的參數集合是否為指定集合的子集

pop()

隨機移除元素

remove()

移除指定元素

symmetric_difference()

返回兩個集合中不重復的元素集合。

symmetric_difference_update()

移除當前集合中在另外一個指定集合相同的元素,并將另外一個指定集合中不同的元素插入到當前集合中。

union()

返回兩個集合的并集

update()

給集合添加元素

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/397208.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/397208.shtml
英文地址,請注明出處:http://en.pswp.cn/news/397208.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mysql binlog日志查看及解碼

mysql bin log日志導出 mysqlbinlog mysql-bin.000005 > /home/17bin.log 需要添加參數(--base64-outputdecode-rows -v)對輸出結果解碼 mysqlbinlog --base64-outputdecode-rows -v mysql-bin.000005 > /home/17bin.log轉載于:https://www.cnbl…

【Python開發】Python的GUI用法總結

引用模塊(tkinter): 1 from tkinter import * 主窗口設置: 1 # 主窗口 2 tk Tk() # 主窗口實例化 3 tk.title("文本處理工具") # 主窗口標題 4 tk.geometry("700x4001001…

JAVA 環境變量配置

JAVA 環境變量配置 1. 安裝JDK 2.配置系統變量 新建          JAVA_HOME:D:\Program Files\Java\jdk1.8.0_65 Path添加       %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 新建CLASSPATH  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; 3.完成…

8修改host_正點原子【STM32-F407探索者】第五十九章 USB 鼠標鍵盤(Host)實驗

1)資料下載:點擊資料即可下載2)對正點原子Linux感興趣的同學可以加群討論:9354467413)關注正點原子公眾號,獲取最新資料更新上一章我們向大家介紹了如何利用 STM32F4 的 USB HOST 接口來驅動 U 盤,本章,我們 將利用 ST…

CF815C Karen and Supermarket [樹形DP]

題目傳送門 Karen and Supermarket On the way home, Karen decided to stop by the supermarket to buy some groceries. She needs to buy a lot of goods, but since she is a student her budget is still quite limited. In fact, she can only spend up to b dollars. Th…

linux命令積累之egrep命令

學搭建Nginx環境,必須要配置的Nginx.conf文件中,如下:#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worke…

Sublime Text 3 安裝及插件推薦

本篇介紹跨平臺編輯器Sublime Text 3的安裝和其插件推薦。 目錄: 1.介紹 2.下載安裝 3.插件 4.參考資料 1.介紹 Sublime Text具有漂亮的用戶界面和強大的功能,例如代碼縮略圖,Python的插件,代碼段等。還可自定義鍵綁定&#xff0c…

6工程文件夾作用_data_dragon數據工程小工具收集

最近在GitHub上創建了一個新工程,收集個人在數據工程工作的小工具集合,命名為data_dragon (數據一條龍)。取這個名字的是希望這些腳本或代碼能夠復用,端到端地減少臨時數據處理的時間。最近因為工作上的一些變化,寫作節奏有點被打…

暑假第十七測

題解&#xff1a; 第一題 #include<bits/stdc.h> using namespace std; #define ll long long const int M 1e5 10; ll a[M], b[M], ans; priority_queue <ll, vector<ll> , greater<ll> > Q; int main(){freopen("buy.in","r",…

Uva 11354 LCA 倍增祖先

題目鏈接&#xff1a;https://vjudge.net/contest/144221#problem/B 題意&#xff1a;找一條從 s 到 t 的路&#xff0c;使得瓶頸路最小。 點的數目是10^4&#xff0c;如果向之前的方案求 maxcost數組&#xff0c;O(n*n)時間是過不了的&#xff0c;這個時候&#xff0c;用到了…

Nginx搭建flv視頻點播服務器

Nginx搭建flv視頻點播服務器前一段時間使用Nginx搭建的多媒體服務器只能在緩沖過的時間區域內拖放, 而不能拖放到未緩沖的地方. 這就帶來了一個問題: 如果視頻限速的速率很小, 那么客戶端觀看視頻時肯定不流暢, 而且用戶不能向前拖放, 用戶體驗很不好. 如果視頻限速的速率很大或…

編碼拾遺

1 #!/usr/bin/env python32 #-*- coding:utf-8 -*-3 4 Administrator 5 2018/8/16 6 7 8 # fopen("demo","r",encoding"utf8")9 # dataf.read() 10 # print(data) 11 # f.close() 12 13 14 # print("沈哲子") 15 16 s"中國&qu…

Xcode:Foundation框架找不到,或者是自動提示出現問題

問題描述&#xff1a;Foundation框架找不到&#xff0c;或者是自動提示出現問題 之前的操作&#xff1a;手賤&#xff0c;不少心把編譯器里面的源碼改了處理辦法&#xff1a;清理緩存緩存位置&#xff1a;點擊桌面后&#xff0c;選擇系統菜單欄&#xff1a;前往—電腦—硬盤—用…

mybatis 不生效 參數_Mybatis-日志配置

日志Mybatis 的內置日志工廠提供日志功能&#xff0c;內置日志工廠將日志交給以下其中一種工具作代理&#xff1a;SLF4JApache Commons LoggingLog4j 2Log4jJDK loggingMyBatis 內置日志工廠基于運行時自省機制選擇合適的日志工具。它會使用第一個查找得到的工具(按上文列舉的順…

PS通過濾色實現簡單的圖片拼合

素材如下&#xff1a; 素材一&#xff1a; 雪山 素材二&#xff1a; 月亮 效果&#xff1a; 實現步驟 1、在PS中打開雪山素材一 2、將月亮素材直接拖入雪山所在的圖層中 3、鎖定置入素材的高寬比&#xff08;點擊一下鏈狀按鈕&#xff09; 4、調整月亮到合適大小合適位置 5、…

預處理:主成分分析與白化

主成分分析 引言 主成分分析&#xff08;PCA&#xff09;是一種能夠極大提升無監督特征學習速度的數據降維算法。更重要的是&#xff0c;理解PCA算法&#xff0c;對實現白化算法有很大的幫助&#xff0c;很多算法都先用白化算法作預處理步驟。 假設你使用圖像來訓練算法&#x…

jQuery Ajax

jQuery load()方法&#xff1a;是簡單但強大的Ajax 方法load() 方法從服務器(URL,data,callback);必須的URL 參數規定您希望架加載的URL可選的data參數 規定與請求一同發送的差字符串鍵/值對集合。可選的callback參數時load()方法完成后所執行的函數名稱$(documnet).ready(…

swagger 修改dto注解_Web服務開發:Spring集成Swagger,3步自動生成API文檔

目錄&#xff1a;1&#xff0c;Spring Boot集成Swagger2&#xff0c;Swagger接口文檔頁面3&#xff0c;常見問題和解決方法在Sping開發REST接口服務時&#xff0c;API文檔是不可缺少的一個重要部分。Swagger框架定義了完整的REST接口文檔規范&#xff0c;提供了強大的頁面測試功…

WPF自定義控件之列表滑動特效 PowerListBox

列表控件是應用程序中常見的控件之一&#xff0c;對其做一些絢麗的視覺特效&#xff0c;可以讓軟件增色不少。 本人網上看過一個視頻&#xff0c;是windows phone 7系統上的一個App的列表滾動效果&#xff0c;效果非常炫 現在在WPF上用ListBox重現此效果 首先我們來分析一下&am…

去除inline-block元素間間距

根本原因&#xff1a;inline-block元素之間之所以有空白間距是因為空格有字體大小原因。 第一種&#xff1a; 把代碼之間的換行空白都去掉。 例如&#xff1a; <div>第一個inline-block元素</div><div>第二個inline-block元素</div> 第二種&#xff1a…