python集合類型是一種具體的數據類型_Python3基礎語法之集合類型

set也是一種組合數據類型,支持成員關系操作(in)、對象大小計算操作符(len()),并且是iterable。集合數據類型至少提供一個set.isdisjoin()方法,支持比較,也支持為邏輯操作(在集合用于聯合、交叉等上下文中使用)。只有可哈希運算的對象可以添加到集合中,可哈希運算的對象包含一個__hash__()特殊方法,其返回值在某個對象的整個生命周期內都是相同的,并且可以使用__eq()__特殊方法進行相等性比較。

所有內置的固定數據類型(比如float、frozenset、int、str、tuple)都是可哈希運算的,都可以添加到集合中。內置的可變數據類型(比如dict、list、set)都不是可哈希運算的,因為其哈希值會隨著包含項數的變化而變化。

操作符==與!=都是逐項比較(對嵌套項,比如集合內的元組或固定集合,則遞歸比較)其他比較操作符則進行子集比較火超集比較。

可變的set類型 {}

集合中的項是無序的,沒有索引位置的概念,不能分片或按步距分片。set數據類型可以作為函數進行調用,不帶參數進行調用時將返回一個空集合;帶一個set參數時返回該參數的淺拷貝;對任意其他參數,則嘗試將給定的對象轉換為集合。空集合必須使用set()創建,而不能使用{}來創建。

set(“apple”)、set(“aple”)和{‘e’,‘p’,‘a’,‘l’}產生的三個集合都是一樣的。集合常用語刪除重復的數據項。比如,x是一個字符串列表,在執行x=list(set(x))后,x中的每個字符串都將是獨一無二的,存放順序也是任意的。集合支持內置的len函數,也支持使用in與not in進行快速成員關系測試。

舉例,從文件列表中刪除makefile文件

集合內涵

除了調用set()創建集合,或使用集合字面值創建集合外,可以使用集合內涵創建集合。

舉例:html = {x for x in files if x.lower().endswitch((".htm",".html"))} 集合內涵中使用的iterable本身也可以是集合內涵(或任何其他類型的內核)

tem = set() for x in files if x.lower().endswith((".htm",".html")) tem.add(x)

固定的frozenset類型

固定集合是指一旦創建舊不能改變的集合,固定集合只能使用frozenset數據類型函數進行創建,不帶參數調用時,frozenset(0將返回一個空的固定集合,帶一個frozenset參數時,將返回該參數的淺拷貝,對任何其他類型的參數,都嘗試將給定的對象轉換為一個frozenset。該函數只能接受一個參數。

如果將二元運算符應用于集合與固定集合,那么產生結果的數據類型與左邊操作數的數據類型一致。因此,如果f是一個固定集合,s是一個集合,那么f&s將產生一個固定集合,s&f則產生一個集合。在使用與!=等操作符時,操作數的順序無關緊要,如果兩個集合包含相同的項,那么fs結果為True。

本文地址:https://blog.csdn.net/asmartkiller/article/details/108237831

希望與廣大網友互動??

點此進行留言吧!

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

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

相關文章

Linux 安裝之U盤引導

說到裝系統最簡單的方法無非就是找個系統安裝光盤來然后就一步一步慢慢的安裝。簡單是簡單但好似大多數人好像都木有Linux的安裝光盤。因此只能用U盤來模擬光盤的功能來裝系統咯。 電腦上裝有Windows 7現要裝Linux變雙系統。 安裝Linux前的準備: 1、電腦上分出空閑的…

OSGi:簡介

為基于Java的系統創建的OSGi提供了模塊化系統的框架。 OSGi使得可以定義每個單獨模塊與其他模塊的依賴關系,并使用戶可以控制生命周期并動態更改系統的每個組件。 OSGi是一個規范,最常見的實現可以算作Equinox , Apache Felix和Knoplerfish 。…

一起動手打造個人娛樂級linux

我們使用電腦,一直以來用的都是windows,但是對于像我這種愛折騰的人來說,嘗試使用linux系統應該是一種不錯的體驗。說到linux,許多人可能都沒聽過,或者知道的人對它印象是這樣的: 然而,linux發展…

PostgreSQL數據類型

http://blog.csdn.net/neo_liu0000/article/details/6254086 第六章 數據類型 6.1概述 PostgreSQL 提供了豐富的數據類型。用戶可以使用 CREATE TYPE 命令在數據庫中創建新的數據類型。PostgreSQL 的數據類型被分為四種,分別是基本數據類型、復合數據類型、域和偽類…

centos 卸載ffmpeg_CentOS Linux 操作系統安裝 FFmpeg 教程

FFmpeg 是一個非常熱門的開源項目,用來編解碼音頻視頻流,被廣泛用于各種流服務中。本教程在 CentOS 6、7、8 上面都可以使用,用來安裝 FFmpeg 軟件。一、安裝前需求一個 sudo 賬戶,一般都是默認 root 賬戶即可。1、CentOS 8安裝所…

Linux 火狐瀏覽器安裝Flash插件

Linux系統安裝完畢后,發現火狐瀏覽器視頻播放不了而且總是提示安裝Flash。而按火狐瀏覽器上的提示Flash插件安裝總是失敗,木有辦法只能手動安裝Flash插件啦。 到Flash官網:http://get.adobe.com/cn/flashplayer/ 下載系統對應的Flash插件&…

按匯總分組/多維數據集

時不時地,您會遇到一個使您達到SQL限制的要求。 我們中的許多人可能會提早放棄并使用Java / [或您的語言]計算內容。 相反,使用SQL可能是如此簡單快捷。 如果您使用的是高級數據庫,例如DB2 , Oracle , SQL Server &…

TCPUDP

TCP(傳輸控制協議) 建立連接,形成傳輸數據的通道在連接中進行大數據傳輸(數據大小不受限制)通過三次握手完成連接,是可靠協議,安全送達(三次握手向服務器發送請求,響應請求回復,發送…

Windows和linux雙系統——修改默認啟動順序

電腦上裝了Windows 7和Ubantu雙系統,由于Linux系統用的次數比較少并且還是默認的啟動項對此很不能容忍,因此得修改Windows為默認的啟動項。 由于電腦上的系統引導程序是GRUB,因此修改當然也就落到Linux系統上啦。 修改/boot/grub/grub.cfg該文…

ft232h引腳_usb轉串口芯片 ft232的奇怪現象

硬件平臺:stm32f407ft232RL按照手冊上的電路,我用USB接口給ft232RL供電,如下圖:0288f358ccd0026690b2443b41d98f0f_224.png (0 Bytes, 下載次數: 12)2010-12-14 22:54 上傳我在這個電路的基礎上我用單片機串口和芯片對應的TX和RX相…

微軟Team Foundation Service 的Scrum模板中的Feature和Backlog Items 的區別【轉載】

Features help us plan work better in Team Foundation Service Scrum process 【原文:http://www.nsilverbullet.net/2013/06/04/features-help-us-plan-work-better-in-team-foundation-service-scrum-process/】 Recently a new work item type named “Featur…

LeWeb – 2011 –綜述

在我去機場前幾個小時,我將寫最后一篇與LeWeb相關的文章。 這次,我將專注于會議本身。 參加過幾次開發人員會議(雖然不多,但足以給您帶來一定的經驗),我已經開發了自己的自定義會議等級框架。 我使用以下6條…

Java 入門基礎——面向對象的特征

計算機軟件系統是現實生活中的業務在計算機中的映射,而現實生活中的業務其實就是一個個對象協作的過程。面向對象編程就是按現實業務一樣的方式將程序代碼按一個個對象進行組織和編寫,讓計算機系統能夠識別和理解用對象方式組織和編寫的程序代碼&#xf…

(總結)密碼破解之王:Ophcrack彩虹表(Rainbow Tables)原理詳解(附:120G彩虹表下載)...

http://www.ha97.com/4009.html轉載于:https://www.cnblogs.com/chaizp/p/5111188.html

python游走代碼_介紹一個全局最優化的方法:隨機游走算法(Random Walk)

1. 關于全局最優化求解全局最優化是一個非常復雜的問題,目前還沒有一個通用的辦法可以對任意復雜函數求解全局最優值。上一篇文章講解了一個求解局部極小值的方法——梯度下降法。這種方法對于求解精度不高的情況是實用的,可以用局部極小值近似替代全局最…

iOS單元測試

iOS單元測試異步測試需要建立預期,因為蘋果的單元測試都是同步的,測試到異步的時候建立一個預期,預期如果在規定時間(自定義)完成,代表單元測試通過。 還有 猴子測試 ,就是去github上找到猴子測…

調試JVM

在某些(極少數)情況下,您可能會遇到使JVM本身崩潰的情況。 我最近通過將ThreadGroup的名稱設置為null來進行管理 。 在這些情況下,調試JVM本身很有用,這樣可以更精確地定位崩潰。 這是完成此操作的步驟(它們…

javaScript DOM編程常用的方法與屬性

DOM是Document Object Model文檔對象模型的縮寫。根據W3C DOM規范,DOM是一種與瀏覽器,平臺,語言無關的接口,使得你可以訪問頁面其他的標準組件。 Node接口的特性和方法 特性/方法類型/放回類型說明nodeName String 節點的名字;根…

一:驗證微信的Token

前言:申請到微信公眾號的同學,可能會挺感興趣的,畢竟微信公眾號,確實是一個好東西,它提供了一個很好的平臺,而且它自帶有一套管理模板,對于微信公眾號可以很好的管理。 但是也僅僅是很好的管理,…

三、 將DataTable 轉換為List

1. 方法public static IList<T> ConvertTo<T>(DataTable table) { if (table null) { return null; } List<DataRow> rows new List<DataRow>(); foreach (DataRow row in table.Rows) { rows.Add(row); } return ConvertTo<T>(rows); }2. 調用…