python中的四種數(shù)據(jù)類型
列表
- 定義
列表是一種有序的集合澈缺,可以隨時添加和刪除其中的元素
變量 = ["數(shù)據(jù)"针姿,"數(shù)據(jù)1" ....]
通過列表可以實現(xiàn)數(shù)據(jù)的:
- 增刪改查
可以在命令行使用
列表中的各種操作
dir(list)
查看列表的常見操作函數(shù)
- 查詢數(shù)據(jù):
根據(jù)下標(biāo)獲取列表中的某個數(shù)據(jù)
- 查詢某個指定數(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() 刪除列表中最后一個元素
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()
該方法沒有返回值纽疟,但是會對列表的元素進(jìn)行反向排序盛泡。
- sort()方法用于數(shù)組排序
L.sort()
字典(dict):
在python中也提供了內(nèi)置的映射類型--字典。映射其實就是一組key和value以及之間的映射函數(shù)夷蚊,其特點是:key的唯一性构挤、key與value的一對多的映射。
1.字典的創(chuàng)建
字典的基本形態(tài)dic={key1:value1, key2:value2...}
創(chuàng)建方式1:直接型惕鼓。
dict1={}
dict2={‘name’:'earth','port':'80'}
創(chuàng)建方式2:使用工廠方法dict筋现,通過其他映射(例如字典)或者(鍵,值)這樣的序列對建立
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(如果沒有給出矾飞,默認(rèn)為none)
dict1={}.fromkeys(('x','y'),-1)
#dict={'x':-1,'y':-1}
dict2={}.fromkeys(('x','y'))
#dict2={'x':None, 'y':None}
2.訪問字典中的值
最常用和基本的莫過于利用key訪問value了
a.通過key訪問value之get方法
dict1.get('name')#也可以直接是dictionary['key1'],但是當(dāng)key1不存在其中時,會報錯呀邢;此時用get則返回None
b.隨機(jī)訪問其中鍵值對
字典中是無序的洒沦,利用popitem方法是隨機(jī)彈出一個鍵值對
c.返回字典所有值的列表
方法values
3.訪問字典中的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.訪問鍵值對
a.遍歷方式
for r in dicitonary #r是dictionary中的鍵值對
b.修改(更新)或添加
p["name"] = value
p["name"] = value
刪除
a.按key刪除
del dictionary[key1]
b.刪除并返回
dictionary.pop(key1)
c.刪除所有項
dictionary.clear()
del dictionary
6.排序
sorted(dic.iteritems(), key=lambda d:d[1] reverse=False)
說明:對字典dic中的元素按照d[1](d[1]是value,d[0]是key价淌,和d沒關(guān)系申眼,可以改為a什么的)進(jìn)行升序排序,通過設(shè)置reverse的True或False可以進(jìn)行逆序输钩,并返回排序后的字典(該排序后的字典由元組組成豺型,其形式為[(key1,value1),(key2,value2),...],且原字典保持不變)
7.其他
len(dictionary) #返回字典項個數(shù)
dictionary.item()
dictionary.iteritems()
元組(tuple):
出現(xiàn)的意義:
為了表示現(xiàn)實生活中买乃,比較固定的數(shù)據(jù),出現(xiàn)了元組的概念
元組的特點:
也可以存儲多個數(shù)據(jù)钓辆,但是一旦聲明并且賦值剪验,不允許修改數(shù)據(jù)
元組的聲明:
通過一對小括號進(jìn)行聲明
t = (“春”, “夏”, “秋”, “冬”)
元組中出現(xiàn)的函數(shù):
count():查詢指定的數(shù)據(jù)出現(xiàn)的次數(shù)
index():查詢指定的數(shù)據(jù)出現(xiàn)的位置
注意:聲明一個只包含一個整數(shù)的元組和一個空元組
聲明一個只包含一個整數(shù)的元組肴焊,切記 x = (12,)
聲明一個空元組,可以直接使用()功戚,如:x = ()
tuple()可以用來聲明一個元組娶眷,同時也可以將其他的組合類型轉(zhuǎn)換成元組
面試題:元組中的數(shù)據(jù)不是不能更改嗎?我可以更改數(shù)據(jù)啸臀,請嘗試解釋
>>> a = ([1,2], [1,2])
>>> a
([1, 2], [1, 2])
>>> a[0][0] = 10
>>> a
([10, 2], [1, 2])
集合(set):
集合是一個保存多個數(shù)據(jù)的數(shù)據(jù)類型届宠。
注意:set中不能存放重復(fù)數(shù)據(jù),數(shù)據(jù)沒有順序
要創(chuàng)建一個集合乘粒,需要提供一個List作為一個輸入集合
例如:s = set([1, 2, 3])
>>> {1, 2, 3}
聲明一個集合:set = {1豌注,2,3}
空集合 s=set()
增:
add()增加一個數(shù)據(jù)到集合中
改:
無法修改數(shù)據(jù)
可以通過remove + add結(jié)合來實現(xiàn)
查:
無法查詢單個數(shù)據(jù)
for + if 查詢 并獲取某個數(shù)據(jù)
成員運算符灯萍,來查詢是否包含某個數(shù)據(jù)
只能通過循環(huán)遍歷數(shù)據(jù)
刪除:
pop() 刪除隨機(jī)一條數(shù)據(jù)
remove(x) 刪除指定的數(shù)據(jù)(如果數(shù)據(jù)不存在會報錯)
discard(x) 刪除指定的數(shù)據(jù)(如果不存在轧铁,沒有事情發(fā)生
根據(jù)具體的功能來確定,如果刪除數(shù)據(jù)不需要出現(xiàn)錯誤提示旦棉,使用discard如果刪除數(shù)據(jù)需要出現(xiàn)錯誤提示齿风,使用remove()
類型的轉(zhuǎn)換
list轉(zhuǎn)字符串
-
tuple轉(zhuǎn)字符串
轉(zhuǎn)換
列表和元組轉(zhuǎn)化為字符串必須依靠join函數(shù)
image.png
直接使用str()會在最外層加個雙引號。 字典轉(zhuǎn)換為字符串
使用str()字符串轉(zhuǎn)化為字典
使用eval()