python 列表 元組 字典 集合區別

2021-08-25 05:31:44 字數 2905 閱讀 3058

一、列表

1.任意物件的有序集合

列表是一組任意型別的值,按照一定順序組合而成的 

2.通過偏移讀取

組成列表的值叫做元素(elements)。每乙個元素被標識乙個索引,第乙個索引是0,序列的功能都能實現 

3.可變長度,異構以及任意巢狀

列表中的元素可以是任意型別,甚至是列表型別,也就是說列表可以巢狀 

4.可變的序列

支援索引、切片、合併、刪除等等操作,它們都是在原處進行修改列表 

5.物件引用陣列

列表可以當成普通的陣列,每當用到引用時,python總是會將這個引用指向乙個物件,所以程式只需處理物件的操作。當把乙個物件賦給乙個資料結構元素或變數名時,python總是會儲存物件的引用,而不是物件的乙個拷貝

#list.pop(obj=list[-1]) 移除並返回列表中最後乙個物件或 obj 物件

#例如:

li=list("hero")

#從集合彈出最後個元素的值

# x=li.pop()

# # print(x,",",li)#2 , [0, 1]

# y=li.pop(索引位置)

y=li.pop(-5)

print(y,",",li)

y=li.pop(10)#越界錯誤

print(y,",",li)#pop index out of range

二、元組

1.任意物件的有序集合

與列表相同 

2.通過偏移訪問

與列表相同 

3.屬於不可變序列型別

類似於字串,但元組是不可變的,不支援在列表中任何原處修改操作,不支援任何方法呼叫 

4.固定長度、異構、任意巢狀

固定長度即元組不可變,在不被拷貝的情況下長度固定,其他同列表 

5.物件引用的陣列

與列表相似,元祖是物件引用的陣列

和list相比

1.比列表操作速度快 

2.對資料「寫保護「 

3.可用於字串格式化中 

4.可作為字典的key

三、字典

1.通過鍵而不是偏移量來讀取

字典就是乙個關聯陣列,是乙個通過關鍵字索引的物件的集合,使用鍵-值(key-value)進行儲存,查詢速度快 

2.任意物件的無序集合

字典中的項沒有特定順序,以「鍵」為象徵 

3.可變長、異構、任意巢狀

同列表,巢狀可以包含列表和其他的字典等 

4.屬於可變對映型別

因為是無序,故不能進行序列操作,但可以在遠處修改,通過鍵對映到值。字典是唯一內建的對映型別(鍵對映到值的物件) 

5.物件引用表

字典儲存的是物件引用,不是拷貝,和列表一樣。字典的key是不能變的,list不能作為key,字串、元祖、整數等都可以

和list比較,dict有以下幾個特點:

1.查詢和插入的速度極快,不會隨著key的增加而增加 

2.需要占用大量的記憶體,記憶體浪費多 

而list相反:

1.查詢和插入的時間隨著元素的增加而增加 

2.占用空間小,浪費記憶體很少 

所以,dict是用空間來換取時間的一種方法

import string

import random

from collections import defaultdict

x=string.ascii_letters+string.digits+string.punctuation

y=[random.choice(x) for i in range(1000)]

z="".join(y)

#①# d=dict() #生成空字典

# for ch in y:

# d[ch]=d.get(ch,0)+1

#②d=defaultdict(int)#生成預設值為0的字典

for ch in y:

d[ch]+=1

###################

print(d)

四、集合

1.是一組key的集合,但不儲存value,並且key不能重複

建立乙個set,需要提供乙個list作為輸入集合,s = set([1,2,3]),注意,傳入的引數 [1, 2, 3] 是乙個list,而顯示的 set([1, 2, 3]) 只是告訴你這個set內部有1,2,3這3個元素,顯示的[ ]不表示這是乙個list 

2.重複元素在set中自動被過濾

set可以看成數學意義上的無序和無重複元素的集合,因此,兩個set可以做數學意義上的交集、並集等操作

還有一種集合是forzenset( ),是凍結的集合,它是不可變的,存在雜湊值,好處是它可以作為字典的key,也可以作為其它集合的元素。缺點是一旦建立便不能更改,沒有add,remove方法

和dict對比

1.set和dict的唯一區別僅在於沒有儲存對應的value 

2.set的原理和dict一樣,同樣不可以放入可變物件,因為無法判斷兩個可變物件是否相等,也就無法保證set內部「不會有重複元素」

python列表 元組 字典 集合

列表list 用 表示,list是一種有序的集合,可以隨時新增和刪除其中的元素。元組tuple 用 表示,和列表類似,元組也是一種有序列表,雖然tuple和list非常之類似,但是list初始化之後使可以改變的,但是,元組一旦初始化之後就不可以改變。這點與python中的字串類似,所以我們說元組和字...

python列表 元組 字典 集合

一 列表 可變物件 1.列表的資料項不需要具有相同的型別 建立乙個列表,只要把逗號分隔的不同的資料項使用方括號括起來即可 list1 google runoob 1997,2000 print list1 0 list1 0 列表也可以使用切片 原來字串的切片這裡也可以用 print list 1 ...

Python 列表,元組,字典,集合

特點 順序,可新增,修改,刪除建立方法 x 1,2,3,4,5 x list 12345 x 0 1000 取值方法 x 1 2 x 1 方法 實現兩個列表相加 實現列表的複製後相加 value in sequence 檢驗該value是否在列表sequence中 remove value 刪除指定...