python—集合

1. 集合的概念和建立:

Python中的集合和數學中的集合類似,可以保存不重復的元素。它有可變集合(set)和不可變集合(frozenset)兩種。
集合是不重復的并且無序的序列。
集合創建可以使用{}以及set()的方式。
創建空集合的時候,必須使用set([]),使用{}創建出來的是一個空字典
1 . 創建集合

name = {1, 'http', ('ftp', 'ssh')}	#元素可以是數字,字符串,元組
print(name)運行結果:
{1, 'http', ('ftp', 'ssh')}

使用set()函數創建

setname1 = set('劍魔天下第一!')  #字符串
setname2 = set([3.5, 'http'])   #列表
setname3 = set(('宇智波斑', '千手柱間'))  #元組
setname4 = set(range(1, 10, 2))   #range
print(setname1)
print(setname2)
print(setname3)
print(setname4)運行結果:
{'一', '第', '下', '魔', '劍', '!', '天'}
{3.5, 'http'}
{'宇智波斑', '千手柱間'}
{1, 3, 5, 7, 9}

在創建空集合時,只能用set函數來創建

setname = set()		#空集合

2. 集合的特性:

集合只支持成員操作符以及for循環遍歷
1 成員操作符
通過成員操作符 判斷元素是否屬于該元組:

in       # <元素> in <集合>  屬于則為True,不屬于為False
not in   # <元素> not in <集合>  不屬于則為True,屬于為Falses = {1,2,3}
print(1 in s)
print(1 not in s)運行結果:
True
False

2 for 循環遍歷
使用for 語句 可以取到集合中每一個元素的值

s1 = {1,4,6,2,7}
for i in s1 :print(i)運行結果:
1
2
4
6
7

3. 集合常用的方法:

1、向集合中添加元素

setname = set([1, 'http', 'ftp', 'ssh'])
print(setname)
setname.add('add')
print(setname)運行結果:
{1, 'http', 'ssh', 'ftp'}
{'add', 1, 'http', 'ssh', 'ftp'}

2、從集合中刪除元素

setname = set([1, 'http', 'ftp', 'ssh'])
setname.remove(1)
print(setname)運行結果:
{'ftp', 'ssh', 'http'}

隨機刪除一個元素

setname = set([1, 'http', 'ftp', 'ssh'])
setname.pop()
print(setname)運行結果:
{'http', 'ftp', 'ssh'}

清空集合:

setname = set([1, 'http', 'ftp', 'ssh'])
setname.clear()
print(setname)運行結果:
set()

刪除集合

del 集合名

4. 集合的運算:

1 . 并集:

s1 = {1,2,3}
s2 = {2,3,4}
print('并集:',s1.union(s2))
print('并集:',s1 | s2)運行結果:
并集: {1, 2, 3, 4}
并集: {1, 2, 3, 4}

2 . 交集:

s1 = {1,2,3}
s2 = {2,3,4}
print('交集:',s1.intersection(s2))
print('交集:',s1 & s2)運行結果:
交集: {2, 3}
交集: {2, 3}

3 . 差集:
s1和s2的差集:s1中有哪些元素s2中沒有

s1 = {1,2,3}
s2 = {2,3,4}
print('差集:',s2.difference(s1))
print('差集:',s2-s1)運行結果:
差集: {4}
差集: {4}

4 . 對等差分:并集 - 交集

s1 = {1,2,3}
s2 = {2,3,4}
print('對等差分:',s1.symmetric_difference(s2))
print('對等差分:',s1^s2)運行結果:
對等差分: {1, 4}
對等差分: {1, 4}

5 . 判斷

s3 = {'redhat','westos'}
s4 = {'redhat','westos','linux'}
print(s3.issubset(s4))      # s3是否s4的子集
print(s3.issuperset(s4))       # s3是否s4的超集
print(s3.isdisjoint(s4))        # 兩個集合是不是不相交運行結果:
True
False
False

練習題:
華為機測題:
明明想在學校中請一些同學一起做一項問卷調查,為了實驗的客觀性
他先用計算機生成了N個1~1000之間的隨機整數(N<=1000)
,N是用戶輸入的,對于
其中重復的數字,只保留一個,把其余相同的數字去掉,
不同的數對應著不同的學生的學號,
然后再把這些
數從小到大排序,按照排好的順序去找同學做調查,
請你協助明明完成“去重”與排序工作

import randoms = set([])
for i in range(int(input('N:'))):s.add(random.randint(1,1000))
print(sorted(s))

還有一種方法:

import random
max = int(input('請輸入數量N <=1000 :'))
sid = set([])
while max > 0 :sid.add(random.randint(1,1000))max -= 1
sid2 = sorted(sid)
print(sid2)

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

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

相關文章

第十九天

今天是學習js的第三天&#xff0c;已經感覺腦內存不夠用了。 想想后續還有這么多Php的課程要學習&#xff0c;真心有點怕怕的。希望以后時間過的慢一些&#xff0c;讓我好好的掌握這門技術吧。 另外&#xff0c;學習js里面還有好多的應用需要自己去掌握&#xff0c;我希望能夠通…

彈性理論法研究樁基受力計算公式_豎向荷載下群樁的承載力分析

豎向荷載下群樁的承載力分析樁基礎在工程建設當中得到廣泛地應用,從安全性上考慮,對群樁承載力的研究尤為重要。文章結合一工程實例,根據現場取得的靜載荷試驗數據,(本文共4頁)閱讀全文>>墻體頂部斜裂縫問題一直是困擾設計和施工人員的重要課題,以往的研究往往將這種斜裂…

Java LocalDate類| getChronology()方法與示例

LocalDate類getChronology()方法 (LocalDate Class getChronology() method) getChronology() method is available in java.time package. getChronology()方法在java.time包中可用。 getChronology() method is used to return the IsoChronology of this LocalDate object. …

python—字典

1.字典的含義&#xff1a; 字典和列表類似&#xff0c;是可變序列&#xff0c;與列表不同的是&#xff0c;字典是無序的可變序列&#xff0c;保存的內容是以 鍵值對 的形式存放的。鍵是唯一的&#xff0c;而值可以是多個。值可以取任意數據了類型&#xff0c;但鍵必須是不可變…

js中加“var”和不加“var”的區別,看完覺得這么多年js白學了

Javascript聲明變量的時候&#xff0c;雖然用var關鍵字聲明和不用關鍵字聲明&#xff0c;很多時候運行并沒有問題&#xff0c;但是這兩種方式還是有區別的。可以正常運行的代碼并不代表是合適的代碼。var num 1&#xff1b; 是在當前域中聲明變量. 如果在方法中聲明&#xff0…

解決方案_智能工廠全套解決方案

最近弱電社群資料更新情況&#xff1a;1、弱電學習圈VIP群資料整理-希望對您有用&#xff01;2、弱電學習圈VIP技術交流2群成立&#xff0c;歡迎您加入&#xff01;3、智慧校園整體解決方案&#xff01;4、智能化弱電項目管理表單大全-弱電項目經理必備&#xff01;5、弱電項目…

退火算法 貪婪算法_算法貪婪策略簡介

退火算法 貪婪算法介紹 (Introduction) The solution is determined by a sequence of steps each step has given a particular solution and later a complete solution to given the problem can be achieved. In short, while making a choice there should be a greed for…

windows 2008 R2系統安裝撥號v p n詳細配置

windows 2008 R2系統單網卡安裝撥號v p n系統環境&#xff1a;windows 2008 R2操作步驟首先設置服務端在服務器管理器中添加角色“網絡策略和訪問服務”&#xff0c;并安裝以下角色服務右擊路由與遠程訪問&#xff0c;選擇“配置并啟用路由和遠程訪問”右擊路由與遠程訪問&…

python—函數

1. 函數的定義&#xff1a; 1 . 含義&#xff1a;我們把實現某一功能的代碼定義為一個函數&#xff0c;在需要使用時&#xff0c;隨時調用&#xff0c;十分方便。對于函數&#xff0c;簡單理解就是可以完成某功能的代碼塊&#xff0c;可反復使用。 Python提供了許多內建函數&a…

word打開老是配置進度_小白教程 | office出現配置進度框,怎么辦?

最近很多同學在備考二級時候&#xff0c;自己的電腦上office軟件Word或者Excel出問題了&#xff0c;每次打開都會出現配置進度框。這種情況怎么辦呢&#xff1f;這種情況都是注冊表的問題&#xff0c;馬上安排解決之前在 右鍵菜單沒有office新建怎么辦(點擊即可閱讀)也是用注冊…

【踩坑速記】開源日歷控件,順便全面解析開源庫打包發布到Bintray/Jcenter全過程(新),讓開源更簡單~...

一、寫在前面 自使用android studio開始&#xff0c;就被它獨特的依賴方式&#xff1a;compile com.android.support:appcompat-v7:25.0.1所深深吸引&#xff0c;自從有了它&#xff0c;麻麻再也不用擔心依賴第三方jar包繁瑣無趣啦。而&#xff0c;如果自己寫一個開源庫是一種怎…

scala集合中添加元素_如何在Scala中獲得列表的第一個元素?

scala集合中添加元素清單 (List) A list is a linear data structure. It is a collection of elements of the same data types. 列表是線性數據結構。 它是相同數據類型的元素的集合。 Scala libraries have many functions to support the functioning of lists. Methods l…

python—列表、字典生成式

1 列表生成式 Python內置的一種極其強大的生成列表 list 的表達式。返回結果必須是列表。 示例&#xff1a; 需求1&#xff1a;接收變量 k a b s 51 5000 10000 a s.split() li [] for item in s.split():li.append(int(item)) k,a,b li print(k,a,b)運行結果&#xff1a;…

excel數據平均分配給多人_excel表格 怎樣均分數據-用Excel怎么才能將組數據平均分配給幾個人...

怎樣在Excel表格中求平均數?在excel中怎樣自動生成各班各科的平均成績可以調用Excel函數庫的函實現。步驟如下&#xff1a;1. 在單元格內點擊上公式-平均值”。2. 點擊需要參與計算的單元格數據&#xff0c;符號用鍵盤輸入&#xff0c;最后回車即可。百度百科-Excel函數exce…

Java中List和Map接口之間的區別

列表與地圖界面 (List vs Map interface) Here, we will see how List differs from Map interface in Java and we will see the points given below, 在這里&#xff0c;我們將看到List與Java中的Map接口有何不同&#xff0c;并且我們將看到以下幾點&#xff0c; 列表界面 (…

python—高階函數

什么是內置高階函數&#xff1a; 一個函數可以作為參數傳給另外一個函數&#xff0c;或者一個函數的返回值為另外一個函數&#xff08;若返回值為該函數本身&#xff0c;則為遞歸&#xff09;&#xff0c;滿足其一則為高階函數。 Python中內置了幾個常用的高階函數&#xff0c;…

功能區不顯示工具條_【新老客戶必知】軟件支持超高清屏顯示器了

隨著計算機硬件的不斷更新換代顯示設備的不斷更新從原來的分辨率640 X 480啥原來分辨這么低呀&#xff1f;還記得DOS嗎&#xff1f;或者Win95,win98嗎當時顯示器分辨率能調到800X 600很好了2000年左右隨著純平顯示器的推出也有了高清顯示器的概念那么一般我們說的高清顯示器分辨…

nginx1.10.2源碼安裝配置參數參考

[rootlocalhost nginx-1.10.2]# ./configure --help--help print this message--prefixPATH set installation prefix #Nginx安裝的根路徑,默認為 /usr/local/nginx。--sbin-pathPATH set nginx binary pathname #指定nginx二進制文件的路徑,默認為PATH/sbin/n…

c ++查找字符串_C ++朋友功能| 查找輸出程序| 套裝1

c 查找字符串Program 1: 程序1&#xff1a; #include <iostream>using namespace std;class Sample {int A, B;friend void fun();};void fun(){Sample S;S.A 10;S.B 20;cout << S.A << " " << S.B << endl;}int main(){fun();retu…

Spring定時器的運用

為什么80%的碼農都做不了架構師&#xff1f;>>> 一、spring4定時器任務配置如下&#xff1a; <bean id"jsapiTask" class"chan.ye.dai.wexin.JsapiTicketTimeTask" /><bean id"jobDetail"class"org.springframework.s…