# 字典python
- 又稱爲(# hash,映射,關聯數組)數組
- "字" ---> 先找首字母,查到這個字的解釋所在的頁數;ide
## 字典的定義:函數
d = {}ui
d = {"key1":"value1"}spa
d = {"key1":"value1","key2":"value3"}對象
d = {blog
"172.25.254.1":索引
{ip
"user":"root",
"password":"westos",
"command":"hostname"
},
"172.25.254.2":
{
"user":"westos",
"password":"westos1",
"command":"hostname"
}
}# 支持異構,嵌套
dict(zip(user,passwd))
"".fromkeys(["a","b"],"1000")
## 字典的特性
- 字典是可變數據類型;可以使用len(d)內置函數,計算字典的長度;
- 字典是無序的,與序列(str,list,tuple)不一樣的是,不支持索引,切片,鏈接與重複。只能經過key值獲取對應的value值;
- 字典支持異構,支持嵌套;
## 字典的增長
d.update()
d.setdefault(key[,value])
# 若是key存在,不更改;若是key不存在,添加key-value到字典中;
# 若是key值有,並不存在d字典中,默認value值爲None;
函數(python的樂高積木一)
## 內置函數(BIF,built-in function)
min,max,sum,zip,abs,
int,float,str,list,tuple,bool,
```
In [56]: bool(1)
Out[56]: True
In [57]: bool("")
Out[57]: False
```
函數實質上是一個變量;函數名是一個指向函數對象的引用,徹底能夠把函數賦值給一個變量,至關於給這個函數起了個別名;
```
In [59]: a = abs# a變量指向abs函數
In [60]: a(-1)# 能夠經過a實現abs的功能;
Out[60]: 1
In [61]: abs(-1)
Out[61]: 1
```
## 定義與調用函數
def 函數名([形式參數]):
函數體 # 函數要執行的程序
return 返回值# 若是沒有return返回,默認返回值爲None;
函數名([實參])
注意:有返回值 的函數,必須print fun(),能夠打印出返回值;
## 函數的返回值
- 在函數中,一旦遇到return關鍵字,函數就執行結束;
- 函數返回值只能返回一個,若是想間接返回多個值,返回值實際是一個元組;
```
def maxSum(num1,num2,num3):
print num2
return max(num1,num2,num3),sum([num1,num2,num3])
num1 += 2
print num1
print type(maxSum(1,4,2))
print maxSum(1,4,2)
```
## 函數的參數傳值
### 必選參數:形參與實參的個數必須相同,不然直接報錯;
### 默認參數:在定義函數時,給形參一個默認值;
### 可變參數:傳入的參數個數是可變的,能夠是1-n個,也能夠是0個;通常實參中用*args來表示可變參數;
args接收的是一個元組(tuple);
### 關鍵字參數:容許傳入0個或多個包含參數名的參數,傳進來的參數自動封裝爲一個字典.
若是四種函數參數同時存在,參數定義的順序必須是: 必選參數,默認參數,可變參數,關鍵字參數.
解包:
- 把一個序列元素依次傳入帶有可變參數的函數時,可經過fun(*l)來解包;
- 把一個字典元素依次傳入帶有關鍵字參數的函數時,可經過fun(**d)來解包;
## 變量的做用域
- 全局參數:在函數外定義的函數
- 局部參數:在函數內部定義的函數;
- global:聲明局部變量爲全局變量;
```
global name
name = "westos"
```