Python入門學習 字典集合序列

2021-10-08 16:43:44 字數 4063 閱讀 6095

可變型別與不可變型別

字典的定義

字典的內建方法

集合的建立

訪問集合中的值

集合的內建方法

集合的轉換

針對序列的內建函式

那麼如何快速判斷乙個資料型別 x 是不是可變型別的呢?

兩種方法:

麻煩方法:用 id(x) 函式,對 x 進行某種操作,比較操作前後的 id ,如果不一樣,則 x 不可變,如果一樣,則 x 可變。

便捷方法:用 hash(x) ,只要不報錯,證明 x 可被雜湊,即不可變,反過來不可被雜湊,即可變。

seq =

('name'

,'age'

,'***'

)dic1 =

dict

.fromkeys(seq)

print

("新的字典為 : %s"

%str

(dic1)

)# 新的字典為 :

直接賦值和 copy 的區別

dic1 =

# 引用物件

dic2 = dic1

# 深拷貝父物件(一級目錄),子物件(二級目錄)不拷貝,還是引用

dic3 = dic1.copy(

)print(id

(dic1)

)# 148635574728

print(id

(dic2)

)# 148635574728

print(id

(dic3)

)# 148635574344

# 修改 data 資料

dic1[

'user']=

'root'

dic1[

'num'

].remove(1)

# 輸出結果

print

(dic1)

# print

(dic2)

# print

(dic3)

#

python 中set 與dict 類似,也是一組key 的集合,但不儲存value 。由於key 不能重複,所以,在set 中,沒有重複的key 。注意, key 為不可變型別,即可雜湊的值。

去掉列表中重複的元素

lst =[0

,1,2

,3,4

,5,5

,3,1

]temp =

for item in lst:

if item not

in temp:

print

(temp)

# [0, 1, 2, 3, 4, 5]

a =set

(lst)

print

(list

(a))

# [0, 1, 2, 3, 4, 5]

se =

set(

range(4

))li =

list

(se)

tu =

tuple

(se)

print

(se,

type

(se)

)#

print

(li,

type

(li)

)# [0, 1, 2, 3]

print

(tu,

type

(tu)

)# (0, 1, 2, 3)

不可變集合

python 提供了不能改變元素的集合的實現版本,即不能增加或刪除元素,型別名叫frozenset 。需要注意的是frozenset 仍然可以進行集合操作,只是不能用帶有update 的方法。

a =

frozenset

(range(10

))# 生成乙個新的不可變集合

print

(a)# frozenset()

b =frozenset

('lsgogroup'

)print

(b)# frozenset()

frozenset([iterable]) 返回乙個凍結的集合,凍結後集合不能再新增或刪除任何元素。

sorted(iterable, key=none, reverse=false) 對所有可迭代的物件進行排序操作。

a. iterable – 可迭代物件。

b. key – 主要是用來進行比較的元素,只有乙個引數,具體的函式的引數就是取自於可迭代物件中,指定可

迭代物件中的乙個元素來進行排序。

c. reverse – 排序規則, reverse = true 降序 , reverse = false 公升序(預設)。

d. 返回重新排序的列表。

x =[-

8,99,

3,7,

83]print

(sorted

(x))

# [-8, 3, 7, 83, 99]

print

(sorted

(x, reverse=

true))

# [99, 83, 7, 3, -8]

t =(,,

)x =

sorted

(t, key=

lambda a: a[

"age"])

print

(x)# [, , ]

用於將乙個可遍歷的資料物件(如列表、元組或字串)組合為乙個索引序列,同時列出資料和資料下標,一般用在 for 迴圈當中。

seasons =

['spring'

,'summer'

,'fall'

,'winter'

]a =

list

(enumerate

(seasons)

)print

(a)# [(0, 'spring'), (1, 'summer'), (2, 'fall'), (3, 'winter')]

b =list

(enumerate

(seasons,1)

)print

(b)# [(1, 'spring'), (2, 'summer'), (3, 'fall'), (4, 'winter')]

for i, element in a:

print

(','

.format

(i, element)

)

zip(iter1 [,iter2 […]])

a. 用於將可迭代的物件作為引數,將物件中對應的元素打包成乙個個元組,然後返回由這些元組組成的對

象,這樣做的好處是節約了不少的記憶體。

b. 我們可以使用 list() 轉換來輸出列表。

c. 如果各個迭代器的元素個數不一致,則返回列表長度與最短的物件相同,利用 * 號操作符,可以將元組

解壓為列表。

a =[1

,2,3

]b =[4

,5,6

]c =[4

,5,6

,7,8

]zipped =

zip(a, b)

print

(zipped)

# print

(list

(zipped)

)# [(1, 4), (2, 5), (3, 6)]

zipped =

zip(a, c)

print

(list

(zipped)

)# [(1, 4), (2, 5), (3, 6)]

a1, a2 =

zip(

*zip

(a, b)

)print

(list

(a1)

)# [1, 2, 3]

print

(list

(a2)

)# [4, 5, 6]

python學習 字典

字典的形式 形式 dict key 鍵 可以理解為代號 value 值 代號所指代的內容 字典的特點 1 字典是 無序 的,它不能通過偏移來訪問,只能 通過鍵來訪問 2 可以巢狀 3 可變資料型別,可以在原地修改裡面的內容。4 組成字典的 鍵 必須是 不可變 的資料型別,比如,數字,字串,元組等 列...

python學習 字典

這幾天都比較忙,在搞android開發,接著就天天碼 自然就是很晚。抽點時間現在來看一下python方面的基礎,字典。字典 字典是一種可變容器模型,可以為任意型別。字典中由鍵和值組成,中間冒號隔開。使用冒號隔開,這樣就可以一一的建立好乙個物件,物件之間使用逗號隔開。使用arcmap來建立乙個物件。建...

Python學習 字典

python學習 字典 1.字典是一系列鍵 值對。每個鍵都與乙個值相關聯,可以通過鍵來訪問相應的值。與鍵相關聯的值可以是數字 字串 列表 字典或者任何的python物件。2.python不關心字典中鍵 值對的儲存順序,只關心鍵和值之間的關聯關係。也就是不能像列表中一樣通過角標來訪問鍵 值對。3.使用...