python中的四種數(shù)據(jù)類(lèi)型
列表
- 定義
列表是一種有序的集合,可以隨時(shí)添加和刪除其中的元素
變量 = ["數(shù)據(jù)","數(shù)據(jù)1" ....]
通過(guò)列表可以實(shí)現(xiàn)數(shù)據(jù)的:
- 增刪改查
可以在命令行使用
列表中的各種操作
dir(list)
查看列表的常見(jiàn)操作函數(shù)
- 查詢數(shù)據(jù):
根據(jù)下標(biāo)獲取列表中的某個(gè)數(shù)據(jù)

- 查詢某個(gè)指定數(shù)據(jù)在列表中的位置:
L.index("數(shù)據(jù)")
- 修改數(shù)據(jù):
根據(jù)下標(biāo)直接修改
L[2] = "數(shù)據(jù)"
還可以先查詢數(shù)據(jù)的位置
index = L.index("數(shù)據(jù)")
L[index] = "數(shù)據(jù)1"
- 刪除數(shù)據(jù):
L.pop() 刪除列表中最后一個(gè)元素
L.remove("數(shù)據(jù)") 刪除列表中指定的數(shù)據(jù)
- 增加數(shù)據(jù):
L.append("數(shù)據(jù)") 在列表末尾追加數(shù)據(jù)
L.insert(0, "數(shù)據(jù)") 在列表指定位置增加數(shù)據(jù)
reverse() 函數(shù)用于反向列表中元素
L.reverse()
該方法沒(méi)有返回值,但是會(huì)對(duì)列表的元素進(jìn)行反向排序。
- sort()方法用于數(shù)組排序
L.sort()
字典(dict):
在python中也提供了內(nèi)置的映射類(lèi)型--字典。映射其實(shí)就是一組key和value以及之間的映射函數(shù),其特點(diǎn)是:key的唯一性、key與value的一對(duì)多的映射。
1.字典的創(chuàng)建
字典的基本形態(tài)dic={key1:value1, key2:value2...}
創(chuàng)建方式1:直接型。
dict1={}
dict2={‘name’:'earth','port':'80'}
創(chuàng)建方式2:使用工廠方法dict,通過(guò)其他映射(例如字典)或者(鍵,值)這樣的序列對(duì)建立
items=[('name','earth'),('port','80')]
dict2=dict(items)
dict1=dict((['name','earth'],['port','80']))
創(chuàng)建方式3:使用內(nèi)建方法fromkeys()創(chuàng)建’默認(rèn)‘字典,字典中元素具有相同的value(如果沒(méi)有給出,默認(rèn)為none)
dict1={}.fromkeys(('x','y'),-1)
#dict={'x':-1,'y':-1}
dict2={}.fromkeys(('x','y'))
#dict2={'x':None, 'y':None}

2.訪問(wèn)字典中的值
最常用和基本的莫過(guò)于利用key訪問(wèn)value了
a.通過(guò)key訪問(wèn)value之get方法
dict1.get('name')#也可以直接是dictionary['key1'],但是當(dāng)key1不存在其中時(shí),會(huì)報(bào)錯(cuò);此時(shí)用get則返回None
b.隨機(jī)訪問(wèn)其中鍵值對(duì)
字典中是無(wú)序的,利用popitem方法是隨機(jī)彈出一個(gè)鍵值對(duì)
c.返回字典所有值的列表
方法values
3.訪問(wèn)字典中的key
a.檢查是否含有key1
#dictionary.has_key(key1)
key1 in dictionarty
key1 not dictionary
b.返回字典中鍵的列表
dictionary.keys()
查詢數(shù)據(jù):
x = p["name"]
x = p.get("name")
4.訪問(wèn)鍵值對(duì)
a.遍歷方式
for r in dicitonary #r是dictionary中的鍵值對(duì)
b.修改(更新)或添加
p["name"] = value
p["name"] = value
刪除
a.按key刪除
del dictionary[key1]
b.刪除并返回
dictionary.pop(key1)
c.刪除所有項(xiàng)
dictionary.clear()
del dictionary
6.排序
sorted(dic.iteritems(), key=lambda d:d[1] reverse=False)
說(shuō)明:對(duì)字典dic中的元素按照d[1](d[1]是value,d[0]是key,和d沒(méi)關(guān)系,可以改為a什么的)進(jìn)行升序排序,通過(guò)設(shè)置reverse的True或False可以進(jìn)行逆序,并返回排序后的字典(該排序后的字典由元組組成,其形式為[(key1,value1),(key2,value2),...],且原字典保持不變)
7.其他
len(dictionary) #返回字典項(xiàng)個(gè)數(shù)
dictionary.item()
dictionary.iteritems()
元組(tuple):
出現(xiàn)的意義:
為了表示現(xiàn)實(shí)生活中,比較固定的數(shù)據(jù),出現(xiàn)了元組的概念
元組的特點(diǎn):
也可以存儲(chǔ)多個(gè)數(shù)據(jù),但是一旦聲明并且賦值,不允許修改數(shù)據(jù)
元組的聲明:
通過(guò)一對(duì)小括號(hào)進(jìn)行聲明
t = (“春”, “夏”, “秋”, “冬”)
元組中出現(xiàn)的函數(shù):
count():查詢指定的數(shù)據(jù)出現(xiàn)的次數(shù)
index():查詢指定的數(shù)據(jù)出現(xiàn)的位置
注意:聲明一個(gè)只包含一個(gè)整數(shù)的元組和一個(gè)空元組
聲明一個(gè)只包含一個(gè)整數(shù)的元組,切記 x = (12,)
聲明一個(gè)空元組,可以直接使用(),如:x = ()
tuple()可以用來(lái)聲明一個(gè)元組,同時(shí)也可以將其他的組合類(lèi)型轉(zhuǎn)換成元組
面試題:元組中的數(shù)據(jù)不是不能更改嗎?我可以更改數(shù)據(jù),請(qǐng)嘗試解釋
>>> a = ([1,2], [1,2])
>>> a
([1, 2], [1, 2])
>>> a[0][0] = 10
>>> a
([10, 2], [1, 2])
集合(set):
集合是一個(gè)保存多個(gè)數(shù)據(jù)的數(shù)據(jù)類(lèi)型。
注意:set中不能存放重復(fù)數(shù)據(jù),數(shù)據(jù)沒(méi)有順序
要?jiǎng)?chuàng)建一個(gè)集合,需要提供一個(gè)List作為一個(gè)輸入集合
例如:s = set([1, 2, 3])
>>> {1, 2, 3}
聲明一個(gè)集合:set = {1,2,3}
空集合 s=set()
增:
add()增加一個(gè)數(shù)據(jù)到集合中
改:
無(wú)法修改數(shù)據(jù)
可以通過(guò)remove + add結(jié)合來(lái)實(shí)現(xiàn)
查:
無(wú)法查詢單個(gè)數(shù)據(jù)
for + if 查詢 并獲取某個(gè)數(shù)據(jù)
成員運(yùn)算符,來(lái)查詢是否包含某個(gè)數(shù)據(jù)
只能通過(guò)循環(huán)遍歷數(shù)據(jù)
刪除:
pop() 刪除隨機(jī)一條數(shù)據(jù)
remove(x) 刪除指定的數(shù)據(jù)(如果數(shù)據(jù)不存在會(huì)報(bào)錯(cuò))
discard(x) 刪除指定的數(shù)據(jù)(如果不存在,沒(méi)有事情發(fā)生
根據(jù)具體的功能來(lái)確定,如果刪除數(shù)據(jù)不需要出現(xiàn)錯(cuò)誤提示,使用discard如果刪除數(shù)據(jù)需要出現(xiàn)錯(cuò)誤提示,使用remove()
類(lèi)型的轉(zhuǎn)換
list轉(zhuǎn)字符串
-
tuple轉(zhuǎn)字符串
轉(zhuǎn)換
列表和元組轉(zhuǎn)化為字符串必須依靠join函數(shù)
image.png
直接使用str()會(huì)在最外層加個(gè)雙引號(hào)。 字典轉(zhuǎn)換為字符串
使用str()字符串轉(zhuǎn)化為字典
使用eval()

