1.列表
定義:是一種有序的集合幼苛,可以隨時(shí)添加和刪除其中的元素舶沿。
訪問方式:用索引來訪問配并,索引是從0開始。當(dāng)索引超出范圍時(shí)畸冲,會報(bào)IndexErr錯誤观腊。所以,要確保索引不要越界苫耸,記得最后一個元素的索引是len(classname)-1.如果要取最后一個元素儡陨,除了計(jì)算索引位置外,還可以用-1做索引迄委,list[1]直接獲取最后一個元素。
元素添加:在尾部添加 list.append
? ? ? ? ? ? ? ? ? 在指定位置添加:list.insert(1,要添加的數(shù)據(jù))
元素刪除:刪除尾部元素:list.pop()
? ? ? ? ? ? ? ? ? 刪除指定位置元素:list.pop(1)
替換元素:直接賦值給對應(yīng)的索引位置:list[1] ='替換值'
list內(nèi)再包含list:如:list[1,2,3,[1,2,3],4]
list常用函數(shù):
# append() 追加數(shù)據(jù)
# insert() 插入數(shù)據(jù)
# pop() ? ?移出數(shù)據(jù)
# clear() ?刪除列表所有元素
# copy() ? 拷貝列表
# count() ?獲取某元素出現(xiàn)的次數(shù)
# extend ? 擴(kuò)展列表,把
# index() ?獲取某個元素的索引
# remove() 移除列表中某個元素
# reverse()反向排序
# sort() ? 排序(升序、降序)
(1)初始化列表
li = [1, 2, 3, 'abc', 4.5, [2, 3, 4], {1:'one'}]
(2)獲取列表長度
print(len(li))
(3)根據(jù)索引讀寫
print(li[0])
print(li[3])
print(li[-1])
(4)添加元素
li = [1, 2, 3]
li.append('a')
li.append('b')
print(li)
li.append([4, 5, 6])
print(li)
li = [1, 2, 3]
li.extend([4, 5, 6])
print(li)
(5)刪除元素
li = [1, 2, 3, 4, 5]
li.pop()
print(li)
del(li[0])
del(li[1])
print(li)
(6)判斷元素是否在列表
li = [1, 2, 3, 4, 5]
print(1 in li)
print(6 in li)
(7)判斷列表是否為空
li = []
if not li:
print('Empty')
else:
print('Not empty')
(8)替換元素
s ='abcdefg'
li =list(s)
li[4] ='E'
li[5] ='F'
print(li)
s =''.join(li)
print(s)
(9)遍歷
li = [1, 2, 3]
for iin li:
print(i)
for iin range(len(li)):
print(li[i])
(10)列表的切片
print(li[2:5])
print(li[:4])
print(li[5:])
print(li[:])
print(li[0:6:2])
print(li[3::2])
print('')
# 負(fù)數(shù)索引和step
print(li[::-1])
print(li[::-2])
print(li[-6:-1:1])
print(li[-1::-1])
運(yùn)行結(jié)果
2.元組
定義:是一種有序的集合晃痴。但是tuple一旦初始化就不能修改,tuple沒有append(),insert()這樣的方法泣侮〗舫‘’
訪問方法:tuple[0],tuple[-1]
替換元素:不能復(fù)制成另外的元素
統(tǒng)計(jì)次數(shù):統(tǒng)計(jì)元組中某個元素出現(xiàn)的次數(shù)
result = tuple1.count(2)
print(result)
index() 獲取某個元素在元組中的第一個位置索引漏益,若有返回索引值,若沒有拋出異常
result = tuple1.index(1)
3.集合(set)
定義:集合中可以存儲任意類型的數(shù)據(jù)铜犬,集合中不會出現(xiàn)重復(fù)的數(shù)據(jù)轻庆。
添加元素:set1.add(要添加的數(shù)據(jù))
? ? ? ? ? ? ? ? ? ?set1.update()
刪除元素:set1.remove(要刪除的數(shù)據(jù))
集合中移出一個元素:set1.pop()
列表轉(zhuǎn)換為集合:list1 = [1,2,2,2,3,4,5]
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? t =set(list1)
集合轉(zhuǎn)換為列表:list2 = list(t)
列表轉(zhuǎn)換為元組:tuple1 = tuple(list2)
元組轉(zhuǎn)換為列表:list3 = list(tuple1)
(1)元組初始化
s_a =set([1, 2, 3, 4, 5])
s_b =set([1, 1, 2, 2, 3, 4, 5])
print(s_a)
print(s_b)
(2)獲取長度
print(len(s_a))
print(len(s_b))
(3)添加元素
s_a.add(6)
s_a.add(6)
s_a.update([5, 6, 7, 8, 9])
print(s_a)
(4)刪除元素
s_a.remove(8)
s_a.remove(9)
print(s_a)
(5)判斷元素是否存在
print(1 in s_a)
print(10 in s_a)
(6)判斷集合是否為空
s_a =set([])
if not s_a:
print('set is empty')
else:
print('set is not empty')
(7)遍歷
s_a =set([1, 2, 3, 4, 5])
for iin s_a:
print(i)
4.字典(dct)
定義:是一種可變?nèi)萜髂P陀啾铱纱鎯θ我忸愋蛯ο蟆?/p>
初始化:字典的每個鍵值key=>value對用冒號 :分割,每個鍵值對之間用逗號,分割呐粘,整個字典包括在花括號{}中转捕,格式如下
d = {key1 : value1, key2 : value2 }
優(yōu)點(diǎn):字典值可以沒有限制地取任何python對象五芝,既可以是標(biāo)準(zhǔn)的對象,也可以是用戶定義的沉删,但鍵不行醉途。
注:a.不允許同一個鍵出現(xiàn)兩次。創(chuàng)建時(shí)如果同一個鍵被賦值兩次殴穴,后一個值會被記住
b.鍵必須不可變,所以可以用數(shù)字劲够,字符串或元組充當(dāng)休傍,列表不行。
刪除所有元素
dict.clear()
復(fù)制字典
dict.copy()
創(chuàng)建字典
dict.fromkeys(seq[,val]) 以序列seq中元素做字典的鍵人柿,val為字典所有鍵對應(yīng)的初始值忙厌。
返回字典指定值
dict.get(key,default=None)
返回指定鍵的值,如果值不在字典中返回default值(根據(jù)key取出值,若key不存在扎阶,返回默認(rèn)值)
判斷鍵是否在字典中
dict.has_key(key)
如果鍵在字典dict里返回true东臀,否則返回
返回所有鍵和值
dict.items()
以列表返回可遍歷的(鍵,值)元組數(shù)組? 即獲取字典中所有的key,value,返回[(key,value)]
返回字典的鍵
dict.keys()
以列表返回一個字典所有的鍵(獲取字典所有的key)
獲取鍵值并自動添加鍵值
dict.setdefault(key,default=None)
和get()相似宰掉,但如果鍵不存在于字典中赁濒,將會添加鍵并將值設(shè)為default
更新字典
dict.update(dict2)
把字典dict2的鍵/值對更新到dict里
查詢字典中所有的值
dict.values()
以列表返回字典中的所有值(獲取字典所有的value)
刪除字典給定key所對應(yīng)的的值
pop(key[,default])
刪除字典給定鍵key所對應(yīng)的的值拒炎,返回值為被刪除的值。key值必須給出击你。否則丁侄,返回default值。根據(jù)key移出值石景。
隨機(jī)返回并刪除字典中的一對鍵和值。
popitem()
隨機(jī)返回并刪除字典中的一對鍵和值糙臼。 移出字典中某個key和值恩商,返回(key,value)
(1)初始化
d = {'a':1, 2:'b', 'c':3, 4:'d'}
print(d)
(2)獲取長度
print(len(d))
(3)根據(jù)key讀寫
d['a'] =100
d[4] ='dd'
print(d)
(4)添加元素
d['e'] =5
d[6] ='f'
print(d)
(5)刪除元素
d = {'a':1, 2:'b', 'c':3, 4:'d'}
del(d['a'])
del(d[2])
print(d)
(6)判斷key是否存在
d = {'a':1, 2:'b', 'c':3, 4:'d'}
if 'a' in d:
print('a in d')
if 2 in d:
print('2 in d')
if not ('x' in d):
print('x not in d')
(7)判斷字典是否為空
d = {}
if not d:
print('d is empty')
(8)遍歷
d = {'a':1, 2:'b', 'c':3, 4:'d'}
for kin d.keys():
print(str(k) +': ' +str(d[k]))
for k, vin d.items():
print(str(k) +': ' +str(v))
注:dict內(nèi)部存放的順序和key放入的順序是沒有關(guān)系的怠堪。和list比較,dict有以下幾個特點(diǎn):
1.查找和插入的速度極快凰棉,不會隨著key的增加而變慢陌粹;
2.需要占用大量的內(nèi)存掏秩,內(nèi)存浪費(fèi)多。
而list:
1.查找和插入的時(shí)間隨著元素的增加而增加映凳;
2.占用空間小邮破,浪費(fèi)內(nèi)存很少。
所以矫渔,dict是用空間來換取時(shí)間的一種方法摧莽。
注:set和dict的唯一區(qū)別僅在于沒有存儲對應(yīng)的value,但是范嘱,set的原理和dict一樣,所以叠聋,同樣不可以放入可變對象受裹,因?yàn)闊o法判斷兩個可變對象是否相等,也就無法保證set內(nèi)部“不會有重復(fù)元素“厦章。””