Python 中的變量不需要聲明。每個(gè)變量在使用前都必須賦值,變量賦值以后該變量才會(huì)被創(chuàng)建。在 Python 中,變量就是變量,它沒(méi)有類(lèi)型,我們所說(shuō)的"類(lèi)型"是變量所指的內(nèi)存中對(duì)象的類(lèi)型。等號(hào)(=)用來(lái)給變量賦值。等號(hào)(=)運(yùn)算符左邊是一個(gè)變量名,等號(hào)(=)運(yùn)算符右邊是存儲(chǔ)在變量中的值。例如:
count = 10
name = "python"
price = 12.5
也支持同時(shí)為多個(gè)變量賦值。例如
a = b = c = 1
e, f, g = 1, 2, 3
如果想刪除一個(gè)變量,可以使用del,刪除后將不能在進(jìn)行調(diào)用,例如
a = b = c = 1
del a, b
Python的數(shù)據(jù)類(lèi)型
- Number(數(shù)字)
- String(字符串)
- List(列表)
- Tuple(元組)
- Set(集合)
- dictionary(字典)
不可變數(shù)據(jù)(3 個(gè)):Number(數(shù)字)、String(字符串)、Tuple(元組),可變數(shù)據(jù)(3個(gè)):List(列表)、Dictionary(字典)、Set(集合)
一、Number
Python 數(shù)字?jǐn)?shù)據(jù)類(lèi)型用于存儲(chǔ)數(shù)值。數(shù)據(jù)類(lèi)型是不允許改變的,這就意味著如果改變數(shù)字?jǐn)?shù)據(jù)類(lèi)型的值,將重新分配內(nèi)存空間
以下實(shí)例在變量賦值時(shí)候Number對(duì)象將被創(chuàng)建:
a = 1
b = 2
1、Python支持三種不同的數(shù)值類(lèi)型
- 整型(int):通常被稱(chēng)為是整型或整數(shù),是正或負(fù)整數(shù),不帶小數(shù)點(diǎn)。Python3 整型是沒(méi)有限制大小的,可以當(dāng)作 Long 類(lèi)型使用,所以 Python3 沒(méi)有 Python2 的 Long 類(lèi)型
- 浮點(diǎn)型(float):浮點(diǎn)型由整數(shù)部分與小數(shù)部分組成,浮點(diǎn)型也可以使用科學(xué)計(jì)數(shù)法表示(2.5e2 = 2.5 x 102 = 250)
- 復(fù)數(shù)(complex):復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型
2、Python數(shù)字類(lèi)型轉(zhuǎn)換
有時(shí)候需要把數(shù)據(jù)內(nèi)置的類(lèi)型轉(zhuǎn)換,數(shù)據(jù)類(lèi)型轉(zhuǎn)換,只需要將數(shù)據(jù)類(lèi)型作為函數(shù)名即可
- int(a):將a轉(zhuǎn)換為一個(gè)整數(shù),如果是小數(shù),會(huì)去掉小數(shù)位
- float(a):將a轉(zhuǎn)換到一個(gè)浮點(diǎn)數(shù)
- complex(a):將a轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為a,虛數(shù)部分為0
- complex(a,b):將a和b轉(zhuǎn)換到一個(gè)復(fù)數(shù),實(shí)數(shù)部分為a,虛數(shù)部分為b,a和b是數(shù)字表達(dá)式
a = 12.6
print(int(a))
# 輸出12
3、數(shù)字運(yùn)算
這里只給一些使用例子,對(duì)運(yùn)算符不熟悉的可以前往查看之前的文章:Python3入門(mén)(二)運(yùn)算符
a = 2
b = 1
c = 1.5
# 輸出結(jié)果:3
print(a + b)
# 輸出結(jié)果:2
print(a * b)
# 輸出結(jié)果:2.0
print(a / b)
# 輸出結(jié)果:2
print(a // b)
# 輸出結(jié)果:2
print(a ** b)
# 輸出結(jié)果:4.0
print(a * c + b)
# 輸出結(jié)果:1.0
print(a // c)
除法/總是返回一個(gè)浮點(diǎn)數(shù),如果想去掉可能的小數(shù),考慮使用//,但是,//得到的不一定是整數(shù),要根據(jù)除數(shù)和被除數(shù)的類(lèi)型而定,上面的給出了例子;不同的數(shù)據(jù)類(lèi)型之間混合運(yùn)算,結(jié)果會(huì)轉(zhuǎn)換為浮點(diǎn)數(shù)
4、數(shù)學(xué)函數(shù)
| 函數(shù) | 描述 |
|---|---|
| abs(a) | 返回?cái)?shù)字a的絕對(duì)值,如abs(-1)返回1 |
| ceil(a) | 返回?cái)?shù)字的上入整數(shù),如math.ceil(4.1)返回5 |
| exp(a) | 返回e的a次冪,如math.exp(1)返回2.718281828459045 |
| fabs(a) | 返回?cái)?shù)字的絕對(duì)值,如math.fabs(-1)返回1.0 |
| floor(a) | 返回?cái)?shù)字的下舍整數(shù),如math.floor(4.6)返回4 |
| log(a) | 對(duì)數(shù)函數(shù),如math.log(4,2)返回2.0 |
| max(a,b,c...) | 返回給定參數(shù)的最大值,參數(shù)可以為序列 |
| min(a,b,c...) | 返回給定參數(shù)的最小值,參數(shù)可以為序列 |
| modf(a) | 返回a的整數(shù)部分和小數(shù)部分,兩部分的數(shù)值符號(hào)與a相同,整數(shù)部分以浮點(diǎn)數(shù)表示 |
| pow(a,b) | a**b后的值 |
| round(a,b) | 返回a的四舍五入的值,b可以不設(shè)置,如果設(shè)置,表示舍入到小數(shù)的幾位 |
| sqrt(a) | 返回a的平方根 |
5、隨機(jī)數(shù)函數(shù)
隨機(jī)數(shù)可以用于數(shù)學(xué),游戲,安全等領(lǐng)域中,還經(jīng)常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。Python包含以下常用隨機(jī)數(shù)函數(shù)
| 函數(shù) | 描述 |
|---|---|
| choice(seq) | 從序列的元素中隨機(jī)挑選一個(gè)元素,比如random.choice(range(10)),從0到9中隨機(jī)挑選一個(gè)整數(shù)。 |
| randrange ([start], stop, [step]) | 從指定范圍內(nèi),按指定基數(shù)遞增的集合中獲取一個(gè)隨機(jī)數(shù),基數(shù)缺省值為1 |
| random() | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[0,1)范圍內(nèi) |
| seed([x]) | 改變隨機(jī)數(shù)生成器的種子seed。如果你不了解其原理,你不必特別去設(shè)定seed,Python會(huì)幫你選擇seed。 |
| shuffle(lst) | 將序列的所有元素隨機(jī)排序 |
| uniform(x, y) | 隨機(jī)生成下一個(gè)實(shí)數(shù),它在[x,y]范圍內(nèi) |
6、三角函數(shù)
| 函數(shù) | 描述 |
|---|---|
| acos(x) | 返回x的反余弦弧度值 |
| asin(x) | 返回x的反正弦弧度值 |
| atan(x) | 返回x的反正切弧度值 |
| atan2(y, x) | 返回給定的 X 及 Y 坐標(biāo)值的反正切值 |
| cos(x) | 返回x的弧度的余弦值 |
| hypot(x, y) | 返回歐幾里德范數(shù) sqrt(xx + yy) |
| sin(x) | 返回的x弧度的正弦值 |
| tan(x) | 返回x弧度的正切值 |
| degrees(x) | 將弧度轉(zhuǎn)換為角度,如degrees(math.pi/2) , 返回90.0 |
| radians(x) | 將角度轉(zhuǎn)換為弧度 |
7、數(shù)學(xué)常量
| 函數(shù) | 描述 |
|---|---|
| pi | 數(shù)學(xué)常量 pi(圓周率,一般以π來(lái)表示) |
| e | 數(shù)學(xué)常量 e,e即自然常數(shù)(自然常數(shù)) |
二、String(字符串)
字符串是 Python 中最常用的數(shù)據(jù)類(lèi)型。我們可以使用引號(hào)( ' 或 " )來(lái)創(chuàng)建字符串
1、訪問(wèn)字符串
Python 不支持單字符類(lèi)型,單字符在 Python 中也是作為一個(gè)字符串使用。Python 訪問(wèn)子字符串,可以使用方括號(hào)來(lái)截取字符串,如下
a = "hello"
b = "python"
# 輸出:l
print(a[2])
# 輸出:pyt
print(b[0: 3])
2、改變字符串
截取字符串的一部分并與其他字段拼接
a = "hillo"
b = "world"
# 輸出hi world
print(a[0:2]+" "+b)
3、轉(zhuǎn)義字符
| 轉(zhuǎn)義字符 | 描述 |
|---|---|
| (行尾的時(shí)候) | 續(xù)行符 |
| |反斜杠符號(hào) | |
| ' | 單引號(hào) |
| " | 雙引號(hào) |
| \a | 響鈴 |
| \b | 退格 |
| \000 | 空 |
| \n | 換行 |
| \v | 縱向制表符 |
| \t | 橫向制表符 |
| \r | 回車(chē) |
| \f | 換頁(yè) |
| \oyy | 八進(jìn)制數(shù),yy代表字符 |
| \xyy | 十六進(jìn)制數(shù),yy代表字符 |
| \other | 其他的字符以普通格式輸出 |
4、字符串運(yùn)算符
| 操作符 | 描述 |
|---|---|
| + | 字符串品拼接 |
| * | 重復(fù)輸出字符串 |
| [] | 通過(guò)索引獲取字符串中字符 |
| [a:b] | 截取字符串中一部分,a為開(kāi)始下標(biāo),右為結(jié)束 |
| in | 成員運(yùn)算符,如果字符串中包含給定字符,返回True |
| not in | 如果字符串中不包含給定字符,返回True |
| r/R | 原始字符串 - 原始字符串:所有的字符串都是直接按照字面的意思來(lái)使用,沒(méi)有轉(zhuǎn)義特殊或不能打印的字符 |
5、字符串格式化
Python 支持格式化字符串的輸出 。盡管這樣可能會(huì)用到非常復(fù)雜的表達(dá)式,但最基本的用法是將一個(gè)值插入到一個(gè)有字符串格式符 %s 的字符串中
# 輸出:翠花你今天真好看
print("%s你今天真好看" % '翠花')
格式化符號(hào)
| 符號(hào) | 描述 |
|---|---|
| %c | 格式化字符及其ASCII碼 |
| %d | 格式化整數(shù) |
| %s | 格式化字符串 |
| %u | 格式化無(wú)符號(hào)整型 |
| %o | 格式化無(wú)符號(hào)八進(jìn)制數(shù) |
| %x | 格式化無(wú)符號(hào)十六進(jìn)制數(shù) |
| %X | 格式化無(wú)符號(hào)十六進(jìn)制數(shù)(大寫(xiě)) |
| %f | 格式化浮點(diǎn)數(shù)字,可指定小數(shù)點(diǎn)后的精度 |
| %e | 用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| %E | 作用同%e,用科學(xué)計(jì)數(shù)法格式化浮點(diǎn)數(shù) |
| %g | %f和%e的簡(jiǎn)寫(xiě) |
| %G | %f 和 %E 的簡(jiǎn)寫(xiě) |
| %p | 用十六進(jìn)制數(shù)格式化變量的地址 |
格式化輔助指令
| 符號(hào) | 功能 |
|---|---|
| * | 定義寬度或者小數(shù)點(diǎn)精度 |
| - | 用做左對(duì)齊 |
| + | 在正數(shù)前面顯示加號(hào)( + ) |
| <sp> | 在正數(shù)前面顯示空格 |
| # | 在八進(jìn)制數(shù)前面顯示零('0'),在十六進(jìn)制前面顯示'0x'或者'0X'(取決于用的是'x'還是'X') |
| 0 | 顯示的數(shù)字前面填充'0'而不是默認(rèn)的空格 |
| % | '%%'輸出一個(gè)單一的'%' |
| (var) | 映射變量(字典參數(shù)) |
| m.n. | m 是顯示的最小總寬度,n 是小數(shù)點(diǎn)后的位數(shù)(如果可用的話) |
6、三引號(hào)
python三引號(hào)允許一個(gè)字符串跨多行,字符串中可以包含換行符、制表符以及其他特殊字符
s = """啦啦啦啦
啦啦啦啦啦啦
使用制表符
TAB(\t)
換行符[\n]
"""
print(s)
7、字符串內(nèi)帶函數(shù)
| 函數(shù) | 描述 |
|---|---|
| capitalize() | 將字符串的第一個(gè)字符轉(zhuǎn)換為大寫(xiě) |
| center(width, fillchar) | 返回一個(gè)指定的寬度 width 居中的字符串,fillchar 為填充的字符,默認(rèn)為空格 |
| count(str, beg= 0,end=len(string)) | 返回 str 在 string 里面出現(xiàn)的次數(shù),如果 beg 或者 end 指定則返回指定范圍內(nèi) str 出現(xiàn)的次數(shù) |
| bytes.decode(encoding="utf-8", errors="strict") | Python3 中沒(méi)有 decode 方法,但我們可以使用 bytes 對(duì)象的 decode() 方法來(lái)解碼給定的 bytes 對(duì)象,這個(gè) bytes 對(duì)象可以由 str.encode() 來(lái)編碼返回 |
| encode(encoding='UTF-8',errors='strict') | 以 encoding 指定的編碼格式編碼字符串,如果出錯(cuò)默認(rèn)報(bào)一個(gè)ValueError 的異常,除非 errors 指定的是'ignore'或者'replace' |
| endswith(suffix, beg=0, end=len(string)) | 檢查字符串是否以 obj 結(jié)束,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 結(jié)束,如果是,返回 True,否則返回 False |
| expandtabs(tabsize=8) | 把字符串 string 中的 tab 符號(hào)轉(zhuǎn)為空格,tab 符號(hào)默認(rèn)的空格數(shù)是 8 |
| find(str, beg=0, end=len(string)) | 檢測(cè) str 是否包含在字符串中,如果指定范圍 beg 和 end ,則檢查是否包含在指定范圍內(nèi),如果包含返回開(kāi)始的索引值,否則返回-1 |
| index(str, beg=0, end=len(string)) | 跟find()方法一樣,只不過(guò)如果str不在字符串中會(huì)報(bào)一個(gè)異常 |
| isalnum() | 如果字符串至少有一個(gè)字符并且所有字符都是字母或數(shù)字則返 回 True,否則返回 False |
| isalpha() | 如果字符串至少有一個(gè)字符并且所有字符都是字母則返回 True, 否則返回 False |
| isdigit() | 如果字符串只包含數(shù)字則返回 True 否則返回 False |
| islower() | 如果字符串中包含至少一個(gè)區(qū)分大小寫(xiě)的字符,并且所有這些(區(qū)分大小寫(xiě)的)字符都是小寫(xiě),則返回 True,否則返回 False |
| isnumeric() | 如果字符串中只包含數(shù)字字符,則返回 True,否則返回 False |
| isspace() | 如果字符串中只包含空白,則返回 True,否則返回 False |
| istitle() | 如果字符串是標(biāo)題化的(見(jiàn) title())則返回 True,否則返回 False |
| isupper() | 如果字符串中包含至少一個(gè)區(qū)分大小寫(xiě)的字符,并且所有這些(區(qū)分大小寫(xiě)的)字符都是大寫(xiě),則返回 True,否則返回 False |
| join(seq) | 以指定字符串作為分隔符,將 seq 中所有的元素(的字符串表示)合并為一個(gè)新的字符串 |
| len(string) | 返回字符串長(zhǎng)度 |
| ljust(width[, fillchar]) | 返回一個(gè)原字符串左對(duì)齊,并使用 fillchar 填充至長(zhǎng)度 width 的新字符串,fillchar 默認(rèn)為空格 |
| lower() | 轉(zhuǎn)換字符串中所有大寫(xiě)字符為小寫(xiě) |
| lstrip() | 截掉字符串左邊的空格或指定字符 |
| maketrans() | 創(chuàng)建字符映射的轉(zhuǎn)換表,對(duì)于接受兩個(gè)參數(shù)的最簡(jiǎn)單的調(diào)用方式,第一個(gè)參數(shù)是字符串,表示需要轉(zhuǎn)換的字符,第二個(gè)參數(shù)也是字符串表示轉(zhuǎn)換的目標(biāo) |
| max(str) | 返回字符串 str 中最大的字母 |
| min(str) | 返回字符串 str 中最小的字母 |
| replace(old, new [, max]) | 把 將字符串中的 str1 替換成 str2,如果 max 指定,則替換不超過(guò) max 次 |
| rfind(str, beg=0,end=len(string)) | 類(lèi)似于 find()函數(shù),不過(guò)是從右邊開(kāi)始查找 |
| rindex( str, beg=0, end=len(string)) | 類(lèi)似于 index(),不過(guò)是從右邊開(kāi)始. |
| rjust(width,[, fillchar]) | 返回一個(gè)原字符串右對(duì)齊,并使用fillchar(默認(rèn)空格)填充至長(zhǎng)度 width 的新字符串 |
| rstrip() | 刪除字符串字符串末尾的空格 |
| split(str="", num=string.count(str)) | num=string.count(str)) 以 str 為分隔符截取字符串,如果 num 有指定值,則僅截取 num+1 個(gè)子字符串 |
| splitlines([keepends]) | 按照行('\r', '\r\n', \n')分隔,返回一個(gè)包含各行作為元素的列表,如果參數(shù) keepends 為 False,不包含換行符,如果為 True,則保留換行符 |
| startswith(substr, beg=0,end=len(string)) | 檢查字符串是否是以指定子字符串 substr 開(kāi)頭,是則返回 True,否則返回 False。如果beg 和 end 指定值,則在指定范圍內(nèi)檢查 |
| strip([chars]) | 在字符串上執(zhí)行 lstrip()和 rstrip() |
| swapcase() | 將字符串中大寫(xiě)轉(zhuǎn)換為小寫(xiě),小寫(xiě)轉(zhuǎn)換為大寫(xiě) |
| title() | 返回"標(biāo)題化"的字符串,就是說(shuō)所有單詞都是以大寫(xiě)開(kāi)始,其余字母均為小寫(xiě)(見(jiàn) istitle()) |
| translate(table, deletechars="") | 根據(jù) str 給出的表(包含 256 個(gè)字符)轉(zhuǎn)換 string 的字符, 要過(guò)濾掉的字符放到 deletechars 參數(shù)中 |
| upper() | 轉(zhuǎn)換字符串中的小寫(xiě)字母為大寫(xiě) |
| zfill (width) | 返回長(zhǎng)度為 width 的字符串,原字符串右對(duì)齊,前面填充0 |
| isdecimal() | 檢查字符串是否只包含十進(jìn)制字符,如果是返回 true,否則返回 false。 |
三、列表
序列是Python中最基本的數(shù)據(jù)結(jié)構(gòu)。序列中的每個(gè)元素都分配一個(gè)數(shù)字 - 它的位置,或索引,第一個(gè)索引是0,第二個(gè)索引是1,依此類(lèi)推,
列表是最常用的Python數(shù)據(jù)類(lèi)型,它可以作為一個(gè)方括號(hào)內(nèi)的逗號(hào)分隔值出現(xiàn)。列表的數(shù)據(jù)項(xiàng)不需要具有相同的類(lèi)型
list1 = ["nihao", 13, 123.22]
1、訪問(wèn)值
使用下標(biāo)索引進(jìn)行訪問(wèn)列表的值
list1 = ["nihao", 13, 123.22]
print(list1[0])
print(list1[0:3])
2、更新列表內(nèi)的值
可以對(duì)列表進(jìn)行修改或者更新,也可以append()向列表內(nèi)增加
list1 = ["nihao", 13, 123.22]
list1[0] = 'no'
list1.append("hello")
# 輸出:['no', 13, 123.22, 'hello']
print(list1)
3、刪除列表元素
使用del語(yǔ)句來(lái)刪除列表的元素
list1 = ["nihao", 13, 123.22]
del list1[0]
# 輸出結(jié)果:[13, 123.22]
print(list1)
4、腳本操作符
| 表達(dá)式 | 描述 |
|---|---|
| len(list) | 返回列表長(zhǎng)度 |
| list1+list2 | 將兩個(gè)列表組合 |
| ["hi"] * 2 | 重復(fù),得到["hi","hi"] |
| 3 in list1 | 判斷元素是否在列表里,返回True如果存在,反之False |
| for x in list; print(x) | 迭代 |
5、截取和拼接
| 表達(dá)式 | 描述 |
|---|---|
| list[2] | 取列表第三個(gè)元素 |
| list[-2] | 取右邊開(kāi)始第二個(gè)元素 |
| list[1:] | 讀取第二個(gè)元素開(kāi)始后的所有元素 |
6、列表函數(shù)和方法
- 函數(shù)
| 函數(shù) | 描述 |
|---|---|
| len(list) | 返回列表元素的個(gè)數(shù) |
| max(list) | 返回列表元素的最大值 |
| min(list) | 返回列表元素的最小值 |
| list(seq) | 將元素轉(zhuǎn)換為列表 |
- 方法
| 方法 | 描述 |
|---|---|
| list.append(obj) | 在列表末尾添加新的對(duì)象 |
| list.count(obj) | 統(tǒng)計(jì)某個(gè)元素在列表中出現(xiàn)的次數(shù) |
| list.extend(seq) | 在列表末尾一次性追加另一個(gè)序列中的多個(gè)值(用新列表擴(kuò)展原來(lái)的列表) |
| list.index(obj) | 從列表中找出某個(gè)值第一個(gè)匹配項(xiàng)的索引位置 |
| list.insert(index, obj) | 將對(duì)象插入列表 |
| list.pop([index=-1]) | 移除列表中的一個(gè)元素(默認(rèn)最后一個(gè)元素),并且返回該元素的值 |
| list.remove(obj) | 移除列表中某個(gè)值的第一個(gè)匹配項(xiàng) |
| list.reverse() | 反向列表中元素 |
| list.sort( key=None, reverse=False) | 對(duì)原列表進(jìn)行排序 |
| list.clear() | 清空列表 |
| list.copy() | 復(fù)制列表 |
四、Tuple(元組)
Python 的元組與列表類(lèi)似,不同之處在于元組的元素不能修改, 元組使用小括號(hào),列表使用方括號(hào),元組與字符串類(lèi)似,下標(biāo)索引從0開(kāi)始,可以進(jìn)行截取,組合等。
tup1 = ("1", 2, 'hello')
元組中只包含一個(gè)元素時(shí),需要在元素后面添加逗號(hào),否則括號(hào)會(huì)被當(dāng)作運(yùn)算符使用
tup1 = ("1",)
1、訪問(wèn)元組
元組可以使用下標(biāo)索引來(lái)訪問(wèn)元組中的值
tup1 = ("1", 2, 'hello')
print(tup1[1])
print(tup1[0:2])
2、修改元組
元組中的元素值不可以更改,但是可以將多個(gè)元組組合
tup1 = ("1", 2, 'hello')
tup2 = (1,)
tup3 = tup1 + tup2
print(tup3)
# 輸出:('1', 2, 'hello', 1)
3、刪除元組
元組中的元素值是不允許刪除的,但是可以刪除整個(gè)元組
tup1 = ("1", 2, 'hello')
del tup1
4、元組運(yùn)算符
| 表達(dá)式 | 描述 |
|---|---|
| len(tup) | 返回元素個(gè)書(shū) |
| tup1+tup2 | 將兩個(gè)元組組合 |
| ("hi") * 2 | 重復(fù),得到("hi","hi") |
| 3 in tup1 | 判斷元素是否在元組里,返回True如果存在,反之False |
| for x in tup; print(x) | 迭代 |
5、元組截取
| 表達(dá)式 | 描述 |
|---|---|
| tup[2] | 讀取元組的第三個(gè)元素 |
| tup[-2] | 讀取元素倒數(shù)第二個(gè)元素 |
| tup[1:] | 讀取元組從第二個(gè)元素開(kāi)始的所有元素 |
6、元組的內(nèi)置方法
| 方法 | 描述 |
|---|---|
| let(tup) | 返回元組的元素個(gè)數(shù) |
| max(tup) | 返回元組中最大的元素 |
| min(tup) | 返回元組最小的元素 |
| tuple(seq) | 將列表轉(zhuǎn)為元組 |
五、字典
字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類(lèi)型對(duì)象。字典的每個(gè)鍵值(key=>value)對(duì)用冒號(hào)(:)分割,每個(gè)對(duì)之間用逗號(hào)(,)分割,整個(gè)字典包括在花括號(hào)({})中 ,格式如下所示
d = {"name": "test", "age": 12}
鍵必須是唯一的,但值則不必。值可以取任何數(shù)據(jù)類(lèi)型,但鍵必須是不可變的,如字符串,數(shù)字或元組
1、訪問(wèn)字典的值
把相應(yīng)的鍵放入到方括號(hào)中,如下實(shí)例:
d = {"name": "test", "age": 12}
print(d["name"])
2、修改字典
向字典添加新內(nèi)容的方法是增加新的鍵/值對(duì),修改或刪除已有鍵/值對(duì)如下實(shí)例
d = {"name": "test", "age": 12}
d["name"] = "test2"
d["city"] = "xiamen"
# 輸出: test2
print(d["name"])
# 輸出: xiamen
print(d["city"])
3、刪除字典中的元素
能刪單一的元素也能清空字典,清空只需一項(xiàng)操作。顯示刪除一個(gè)字典用del命令,如下實(shí)例
d = {"name": "test", "age": 12}
# 刪除鍵"name"
del d["age"]
# 清空字典
d.clear()
# 刪除字典
del d
4、鍵的特性
字典值可以是任何的 python 對(duì)象,既可以是標(biāo)準(zhǔn)的對(duì)象,也可以是用戶(hù)定義的,但鍵不行。兩個(gè)重要的點(diǎn)需要記?。?、不允許同一個(gè)鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個(gè)鍵被賦值兩次,后一個(gè)值會(huì)被記住,2、鍵必須不可變,所以可以用數(shù)字,字符串或元組充當(dāng),而用列表就不行
5、內(nèi)置函數(shù)和方法
- 函數(shù)
| 函數(shù) | 描述 |
|---|---|
| len(dic) | 計(jì)算字典的鍵的個(gè)數(shù) |
| str(dic) | 將字典以字符串輸出 |
| type(variable) | 返回輸入的變量類(lèi)型,如果變量是字典,就返回字典類(lèi)型 |
- 方法
| 方法 | 描述 |
|---|---|
| radiansdict.clear() | 刪除字典內(nèi)所有元素 |
| radiansdict.copy() | 返回一個(gè)字典的淺復(fù)制 |
| radiansdict.fromkeys() | 創(chuàng)建一個(gè)新字典,以序列seq中元素做字典的鍵,val為字典所有鍵對(duì)應(yīng)的初始值 |
| radiansdict.get(key, default=None) | 返回指定鍵的值,如果值不在字典中返回default值 |
| key in dict | 如果鍵在字典dict里返回true,否則返回false |
| radiansdict.items() | 以列表返回可遍歷的(鍵, 值) 元組數(shù)組 |
| radiansdict.keys() | 返回一個(gè)迭代器,可以使用 list() 來(lái)轉(zhuǎn)換為列表 |
| radiansdict.setdefault(key, default=None) | 和get()類(lèi)似, 但如果鍵不存在于字典中,將會(huì)添加鍵并將值設(shè)為default |
| radiansdict.update(dict2) | 把字典dict2的鍵/值對(duì)更新到dict里 |
| radiansdict.values() | 返回一個(gè)迭代器,可以使用 list() 來(lái)轉(zhuǎn)換為列表 |
| pop(key[,default]) | 刪除字典給定鍵 key 所對(duì)應(yīng)的值,返回值為被刪除的值。key值必須給出。 否則,返回default值 |
| popitem() | 隨機(jī)返回并刪除字典中的一對(duì)鍵和值(一般刪除末尾對(duì)) |
六、集合
集合(set)是一個(gè)無(wú)序的不重復(fù)元素序列??梢允褂么罄ㄌ?hào) { } 或者 set() 函數(shù)創(chuàng)建集合,注意:創(chuàng)建一個(gè)空集合必須用 set() 而不是 { },因?yàn)?{ } 是用來(lái)創(chuàng)建一個(gè)空字典
set1 = {"val1", "val2"}
set2 = set("a")
1、集合的基本操作
-
a、添加元素,如果元素已存在,不做任何操作
set1.add("val3") -
b、移除元素
如果元素不存在,會(huì)發(fā)生錯(cuò)誤
set1.remove("val1")
如果元素不存在,不會(huì)發(fā)生錯(cuò)誤
set1.discard("val4")
也可以隨機(jī)
set1.pop() -
c、計(jì)算集合元素的個(gè)數(shù)
len(set) -
d、清空集合
set.clear() -
e、判斷元素是否在集合中
val1 in set
2、集合內(nèi)置所有方法
| 方法 | 描述 |
|---|---|
| add() | 為集合添加元素 |
| clear() | 移除集合中的所有元素 |
| copy() | 拷貝一個(gè)集合 |
| difference() | 返回多個(gè)集合的差集 |
| difference update() | 移除集合中的元素,該集合在指定集合中也存在 |
| discard() | 刪除集合中指定的元素 |
| intersection() | 返回集合的交集 |
| intersection update() | 刪除集合中的元素,該元素在指定的集合中不存在 |
| isdisjoint() | 判斷兩個(gè)集合是否包含相同的元素,如果沒(méi)有返回 True,否則返回 False |
| issubset() | 判斷指定集合是否為該方法參數(shù)集合的子集 |
| issuperset() | 判斷該方法的參數(shù)集合是否為指定集合的子集 |
| pop() | 隨機(jī)移除元素 |
| emove() | 移除指定元素 |
| symmetric_difference() | 返回兩個(gè)集合中不重復(fù)的元素集合 |
| symmetric_difference_update() | 移除當(dāng)前集合中在另外一個(gè)指定集合相同的元素,并將另外一個(gè)指定集合中不同的元素插入到當(dāng)前集合中 |
| union() | 返回兩個(gè)集合的并集 |
| update() | 給集合添加元素 |
好了,本文到此就結(jié)束了,如發(fā)現(xiàn)有誤可以評(píng)論留言,我會(huì)馬上更改,歡迎大家關(guān)注哦~