Swift學習筆記(9) 字典

2021-08-10 00:19:13 字數 3241 閱讀 2488

字典是一種儲存多個相同型別的值的容器。

每個值(value)都關聯唯一的鍵(key),鍵作為字典中的這個值資料的識別符號。

字典中的資料項並沒有具體順序。通過識別符號(鍵)訪問資料。

使用dictionary< key, value >定義

key:字典中鍵的資料型別。

value:字典中對應於這些鍵所儲存值的資料型別。

簡化:[key: value]

(1)使用構造語法建立乙個擁有確定型別的空字典:

var namesofintegers = [int: string]()

// namesofintegers 是乙個空的 [int: string] 字典

// [int: string],它的鍵是int型,值是string型。

(2)用空字典字面量來建立乙個空字典,記作[:]

namesofintegers[16] = "sixteen"

// namesofintegers 現在包含乙個鍵值對

namesofintegers = [:]

// namesofintegers 又成為了乙個 [int: string] 型別的空字典

[key 1: value 1, key 2: value 2, key 3: value 3]

例子:

var airports: [string: string] = ["yyz": "toronto pearson", "dub": "dublin"]

// airports字典被宣告為一種[string: string]型別,這意味著這個字典的鍵和值都是string型別。

如果它的鍵和值都有各自一致的型別,那麼就不必寫出字典的型別。

swift 可以推斷出dictionary< string, string >是airports字典的正確型別。

var airports = ["yyz": "toronto pearson", "dub": "dublin"]
(1)唯讀屬性count

(2)布林屬性isempty

(3)使用下標語法

<1>新增

airports["lhr"] = "london"

// airports 字典現在有三個資料項

<2>修改

使用下標語法來改變特定鍵對應的值。

airports["lhr"] = "london heathrow"

// "lhr"對應的值 被改為 "london heathrow

<3>檢索

如果這個字典包含請求鍵所對應的值,下標會返回乙個包含這個存在值的可選值;否則將返回nil。

if

let airportname = airports["dub"] else

// 列印 "the name of the airport is dublin airport."

<4>刪除

通過給某個鍵的對應值賦值為nil來從字典裡移除乙個鍵值對。

airports["apl"] = nil

// apl 現在被移除了

(4)updatevalue(_:forkey:)方法可以設定或者更新特定鍵對應的值。

在這個鍵不存在對應值的時候會設定新值或者在存在時更新已存在的值,且返回更新值之前的原值

返回對應值的型別的可選值。舉例來說:對於儲存string值的字典,這個函式會返回乙個string?或者「可選 string」型別的值。

如果有值存在於更新前,則這個可選值包含了舊值,否則它將會是nil

if

let oldvalue = airports.updatevalue("dublin airport", forkey: "dub")

// 輸出 "the old value for dub was dublin."

(5)removevalue(forkey:)方法:移除鍵值對。

在鍵值對存在的情況下會移除該鍵值對並且返回被移除的值;在沒有值的情況下返回nil。

(1)for-in

每乙個字典中的資料項都以(key, value)元組形式返回,並且我們可以使用臨時常量或者變數來分解這些元組:

for (airportcode, airportname) in airports 

// yyz: toronto pearson

// lhr: london heathrow

(2)訪問keys或者values屬性

for airportcode in airports.keys 

// airport code: yyz

// airport code: lhr

for airportname in airports.values

// airport name: toronto pearson

// airport name: london heathrow

可以直接使用keys或者values屬性構造乙個新陣列

let airportcodes = [string](airports.keys)

// airportcodes 是 ["yyz", "lhr"]

let airportnames = [string](airports.values)

// airportnames 是 ["toronto pearson", "london heathrow"]

(3)sorted()方法

swift 的字典型別是無序集合型別。為了以特定的順序遍歷字典的鍵或值,可以對字典的keys或values屬性使用sorted()方法。

Swift學習筆記 6 字典

1.定義 1.基本定義 key 1 value 1,key 2 value 2,key 3 value 3 var dict name xiaoqin female age 20 for key,value in dict 2.型別強制定義 dictionaryvar dict2 dictionar...

Swift學習 8 字典

字典是一種儲存多個相同型別的值的容器。每個值 value 都關聯唯一的鍵 key 鍵作為字典中的這個值資料的識別符號。和陣列中的資料項不同,字典中的資料項並沒有具體順序。var games string string diablo3 2014 8 12 dragon age 2014 10 07 v...

python學習(9) 字典

字典 1 字典的使用 1.1 字典的定義 在python中,字典是一系列鍵 值對。每個鍵與每乙個值都相關聯,可以使用鍵來訪問與之關聯的值 與鍵相關聯的值可以是數字 字串 列表及字典,和json的結構非常類似 鍵和值之間用冒號分隔,而鍵 值對之間用逗號分隔。字典中可以包含任意數量的鍵值對 user1 ...