1. 程式人生 > >python中list,tuple,dict,set的區別及聯絡

python中list,tuple,dict,set的區別及聯絡

我在python學習中遇到的一個與其他語言不太相同的一點就是list.tuple.dict.set這幾個資料型別的區別及聯絡。昨天學了,為防忘記,今天就來現學現賣。

一、list

         俗稱列表,是一種有序集合。也就是說,list中的資料排列是有順序的。可以對list中的資料進行新增、刪除和修改的操作。

1、訪問list

         對於一個list L=['a','b','c']來說,可以使用索引來訪問它:

         >>>print(L[0])

         >>>a

         還可以倒序來訪問一個list,倒數第幾就寫負的幾,注意正倒序都不能越界

         >>>print(L[-1])

         >>>c

2、增加、刪除、替換list中的資料

         append()方法,可以將需要新增的內容加入列表的尾端。執行L.append('d')後,L=['a','b','c','d']

         insert()方法,接收兩個引數 第一個引數是索引號,第二個引數是待新增的新元素:也就是說insert(0,'d')的作用就是把d新增在L[0]的位置,而後面的元素自動向後挪一位。

  pop()方法,總是刪掉list的最後一個元素,並且它還返回這個元素。pop(2)方法刪除索引號為2的元素。

二、tuple

         tuple,元組。與list非常類似,但是元組一旦建立,就不能修改。只能索引。

三、dict

         我們已經知道,list 和 tuple 可以用來表示順序集合,例如,班裡同學的名字:

         ['Adam','Lisa', 'Bart']或者考試的成績列表:[95, 85, 59],但是,要根據名字找到對應的成績,用兩個 list 表示就不方便。
         如果把名字和分數關聯起來,組成類似的查詢表:

                            'Adam'==> 95
                            'Lisa' ==>85
                            'Bart' ==>59
         給定一個名字,就可以直接查到分數。
         Python的 dict 就是專門幹這件事的。用dict 表示“名字”-“成績”的查詢表如下:

d = {
    'Adam': 95,
    'Lisa': 85,
    'Bart': 59
}
我們把名字稱為key,對應的成績稱為value,dict就是通過 key 來查詢 value。
花括號 {} 表示這是一個dict,然後按照 key: value, 寫出來即可。最後一個 key: value 的逗號可以省略。
由於dict也是集合,len() 函式可以計算任意集合的大小:
>>> len(d)
注意: 一個 key-value 算一個,因此,dict大小為3。

dict的特點:①dict的訪問速度不受dict大小的限制,無論一個dict裡面有多少個元素,他的訪問速度都是一樣的。但相應的dict也要佔用大量的記憶體②dict的儲存是無序的。③dict中key值只能使用不可變資料,例如:int,float,str。

訪問dict

使用d[key]來返回一個key的值:d[‘Adam’]=95.或者,dict還有一個get方法,d.get(‘Adam’)=95

四、set

當我們只關心dict中key 的值而不在乎value的時候,set就派上了用場,呼叫set傳入一個list,s=set([‘a’, ‘b’, ‘c’])建立了一個名為s的set。

在一個set中,元素不能重複。並且與dict相似,set裡的元素也是無序的。

因為set是無序的,所以不能使用索引來訪問一個set,訪問一個set就是判斷某個數值是否在一個set中,可以直接使用in來判斷。最後,使用set的add(),remove()方法可以增加或者刪除set 中的元素。使用時,add可以直接使用,remove最好先進行判斷元素是否在set中。


相關推薦

pythonlisttupledictset常用函式

#可變型別 ###目標: * 理解列表、元組、字典的性質 * 會使用可變型別常見函式 * 會使用range函式 * 會使用for進行遍歷 * 會使用切片 ####基本語法 列表list:有序可變的儲存模型 list = [] list.insert(idx,data

Pythonlisttupledictset

list list是一種有序的集合,可以隨時新增和刪除其中的元素。 示例: classmates = ['a','b','c'] #新建list print(classmates) #輸出list print(len(classmates)) #輸

pythonlisttupledictset對比

這兩天開始學習了下Python,在此灰常感謝廖雪峰老師關於Python的系列文章。下面,是我在學習過程中遇到的標題上的四個內建屬性時,覺得理一理,不然覺得會“思想錯亂”的。 1. List list是Python內建的一種資料型別,它是有序的而且狀態

pythonpickle使用用於listtupledictset特殊的形式進行讀寫

自動 如果 python log char pycharm 二進制 pychar tom #特殊文件的讀寫,List tuple dict setimport pickle #數據持久性模塊myList=[1,2,3,4,5,"tom is a good boy"]path

pythonlist作函式形參如何防止被實參修改

0.摘要 我們將一個list傳入函式後,函式內部對實參修改後,形參也會隨之改變。本文將主要介紹這種錯誤的現象、原因和解決方法。 1.程式碼示例 def fun(inner_lst): inner_lst.pop() lst = [1,2,3,4,5,6,7

Pythonlisttuple、str和dict之間的相互轉換

1、字典(dict) dict = {‘name’: ‘Zara’, ‘age’: 7, ‘class’: ‘First’} 1.1 字典——字串 返回: print type(str(dict)), str(dict)111.2 字典——元組 返回:(‘age’, ‘na

python筆記三(listtupledictset

print 索引 names dict 追加 增刪改查 list extend clas 一、list   list的增刪改查 #增, classmates.append("nadech") #在末尾追加一個元素 classmates.insert(1,"aguilera

Python資料型別str、listtupledictset

字串 字串常見的功能 name = 'fe_cow' print name.capitalize() # 首字母大寫 :Fe_cow print name.count('_') # 統計字串出現在這個字元中的個數: 1 print name.center(

python知識整理--議可變物件和不可變物件以及str、listtupledictset

可變物件:變數、list 不可變物件:str、tuple、dict、set 1、變數是可變的不用多說,變數賦值一次便改變一次。 2、list 可變物件,可對list進行如下新增刪除排序等操作。 list = [2,3,5,1,2] list.append(8) list.insert(0,

Python封裝函式之str、listtupledictset

字元 encode decode test = 'aLexaLex' v = test.find('ex',5,7) #預設從開始往後找現在設定5到7的閉開區間 print(v) #找到第一個之後,獲取其

Python基礎入門:ListTupleDictSet之間的比較

定義方式: L=[1,2,3] T=('a','b',['A','B']) D={key:value,} S=(['a','b','c']) 比較:list與tuple皆為有序,dict與set為無序 因此dict與set不能通過下標序號呼叫,沒有append(),ins

【資料型別】listtupledictset

【list】:list是一種有序的集合,可以隨時新增和刪除其中的元素。 classmates = ['Michael', 'Bob', 'Tracy'] 【tuple】:另一種有序列表叫元組:tuple。tuple和list非常類似,但是tuple一旦初始化就不能修改。當你定義一

Python3 與 C# 基礎語法對比(ListTupleDictSet專欄)

Help on class set in module builtins: class set(object) | set() -> new empty set object | set(iterable) -> new set object | | Build

Python3 與 NetCore 基礎語法對比(ListTupleDictSet專欄)

// using System; // using System.Collections.Generic; // using System.Linq; // namespace aibaseConsole // { // public static class Program //

Pythonlist、tupe、dic、set的使用小記

以下內容根據老師課件整理而來,不喜勿噴! list list=[元素1,元素2,…元素n]  #定義n個元素組成的列表 1.性質     列表也是序列,其使用與字串十分相似,同樣支援負數索引、分片等特

c++list、vector、map 、set區別

List封裝了連結串列,Vector封裝了陣列, list和vector得最主要的區別在於vector使用連續記憶體儲存的,他支援[]運算子,而list是以連結串列形式實現的,不支援[]。 Vector對於隨機訪問的速度很快,但是對於插入尤其是在頭部插入元素速度很慢,在尾部插入速度很快。List

PythonI/O程式設計的select,poll,epoll區別程式碼例項

select、poll、epoll三者的區別 select select最早於1983年出現在4.2BSD中,它通過一個select()系統呼叫來監視多個檔案描述符的陣列,當select()返回後,該陣列中就緒的檔案描述符便會被核心修改標誌位,使得程序可以獲得這些檔案描述符從而進行後續的讀寫操作。select

pythonlisttupledictset區別聯絡

我在python學習中遇到的一個與其他語言不太相同的一點就是list.tuple.dict.set這幾個資料型別的區別及聯絡。昨天學了,為防忘記,今天就來現學現賣。 一、list          俗稱列表,是一種有序集合。也就是說,list中的資料排列是有順序的。可以

pythonlist,array,mat,tuple以及.format()輸出格式

#coding: utf-8 from numpy import * a=[1,2,3,4,5,6,7] b=array([[1,2,3],[4,5,6]]) c=mat([[1,2,3],[4,5,6],[7,8,9]]) d=(0,2,4,5,6) print("a:{}\ntype:{},

pythonlistdictset的總結

list 基本特性 有序可變,元素可以是任何已知的資料結構 初始化 a = [] a = [1,3,54] a = [1, '34', (2,4)] 增刪改