python教程:列表(list)、元组(tuple)、字典(dict)
一、列表
1、定義列表,取出列表中的值
names = [] #定義空列表 names = ['a','b','c'] #定義一個非空列表# 取出列表中的值 >>> names = ['a','b','c'] >>> names[0] 'a' >>> names[1] 'b' >>> names[2] 'c' >>> names[-1]#倒著取最后一個值 'c'2、切片
>>> names = ['a','b','c','d'] # 列表的下標值是從0開始取值的 >>> names[1:3] #取1到3之間的元素,包括1,不包括3 ['b', 'c'] >>> names[1:-1] #取1到-1之間的元素,包括1,不包括-1 ['b', 'c'] >>> names[0:3] ['a', 'b', 'c'] >>> names[:3] #從頭開始取,0可以省略,效果等同于names[0:3] ['a', 'b', 'c'] >>> names[3:] #想取到最后一個值,必須不能寫-1,只能這么寫 ['d'] >>> names[0::2] #后面的2表示:每隔一個元素就取一個 ['a', 'c'] >>> names[::2] #從頭開始0可以省略,效果跟上一句一樣 ['a', 'c']切片小結(jié):
①序列始終都是從左向右切片的,不能是從右向左
①列表切片時,起始位的元素是包括的,結(jié)束位的元素是不包括(又叫顧頭不顧尾),最后一個位置表示步長(names[開始位:結(jié)束位:步長])
②如果從0位置取值,0可以省略
③想取最后一個值時,結(jié)束位不能是-1,因為結(jié)束位的元素不包括,所以只能留空
3、列表函數(shù)&方法
函數(shù):
| 1 | cmp(list1, list2) #比較兩個列表的元素 |
| 2 | len(list) #列表元素個數(shù) |
| 3 | max(list) #返回列表元素最大值 |
| 4 | min(list) #返回列表元素最小值 |
| 5 | list(seq) #將元組轉(zhuǎn)換為列表 |
方法:
| 1 | list.append(obj) #在列表末尾添加新的對象 |
| 2 | list.count(obj) #統(tǒng)計某個元素在列表中出現(xiàn)的次數(shù) |
| 3 | list.extend(seq) #在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表) |
| 4 | list.index(obj) #從列表中找出某個值第一個匹配項的索引位置 |
| 5 | list.insert(index, obj) #將對象插入列表 |
| 6 | list.pop([index=-1]) #移除列表中的一個元素(默認最后一個元素),并且返回該元素的值 |
| 7 | list.remove(obj) #移除列表中某個值的第一個匹配項 |
| 8 | list.reverse() #反向列表中元素 |
| 9 | list.sort([func]) #對原列表進行排序 |
| 10 | list.clear() #清空列表 |
| 11 | list.copy() #復(fù)制列表 |
演示:
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! '''# append 列表末尾添加新的對象>>> names = ['a','b','c','d']>>> names.append('e')>>> print(names)['a', 'b', 'c', 'd', 'e']#e是新加的元素#統(tǒng)計(count(元素))>>> names = ['a','b','c','d','a']>>> print(names.count('a')) #統(tǒng)計'a'元素的個數(shù)2#擴展(extend)names2的列表合并到names1中,但是,names2這個列表依然存在,如果想刪除names2這個變量,則只需del names2即可>>> names1 = ['a','b','c','d']>>> names2 = [1,2,3,4]>>> names1.extend(names2)>>> print(names1)['a', 'b', 'c', 'd', 1, 2, 3, 4]# insert(下標值,插入的內(nèi)容) >>> names = ['a','b','c','d']>>> names.insert(0,'1') #0表示需要插入的下標值,'1'表示插入的內(nèi)容>>> print(names)['1', 'a', 'b', 'c', 'd'] #在下標值為0的地方插入'1'#翻轉(zhuǎn)(reverse())>>> names = ['a','b','c','d']>>> names.reverse()>>> print(names)['d', 'c', 'b', 'a'] #將整個列表翻轉(zhuǎn)過來#排序(sort())>>> names = [4,2,3,1]>>> names.sort()>>> print(names)[1, 2, 3, 4]#清空列表(clear())>>> names = ['a','b','c','d']>>> names.clear()>>> print(names)[]#復(fù)制(copy())>>> names1 = ['a','b','c','d']>>> names2 = names1.copy()>>> print(names2)['a', 'b', 'c', 'd']刪除(del、remove(元素)、pop())
#根據(jù)下標值刪除元素>>> names = ['a','b','c','d']>>> del names[0] >>> print(names)['b', 'c', 'd']#根據(jù)元素刪除>>> names = ['a','b','c','d']>>> names.remove('a')>>> print(names)['b', 'c', 'd']#刪除最后一個>>> names = ['a','b','c','d']>>> names.pop()'d'>>> print(names)['a', 'b', 'c']#pop返回從列表中移除的元素對象>>> names = ['a','b','c','d']>>> names_pop=names.pop(-1)>>> print(names_pop)d二、元組
元組其實跟列表差不多,也是存一組數(shù),只不是它一旦創(chuàng)建,便不能再修改,所以又叫只讀列表
元組使用小括號,列表使用方括號
元組創(chuàng)建很簡單,只需要在括號中添加元素,并使用逗號隔開即可
用途:一般情況下用于自己寫的程序能存下數(shù)據(jù),但是又希望這些數(shù)據(jù)不會被改變,比如:數(shù)據(jù)庫連接信息等
1.訪問元祖
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' >>> name = ('a','b','c','d') #下標值跟列表一樣,也是從0開始 >>> print(name[0]) 'a' >>> print(name[1]) 'b' #訪問最后一個元素 >>> print(name[-1]) 'd'2,count(統(tǒng)計) 與 index(索引)
# count 統(tǒng)計元素數(shù)量 >>> name = ('a','b','c','a') >>> print(name.count('a')) 2# index 查看元素下標 >>> name = ('a','b','c','a') >>> print(name.index('b')) 13、修改元組 刪除元祖
#元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,如下實例: >>> tup1 = (12, 34.56); >>> tup2 = ('abc', 'xyz')# 以下修改元組元素操作是非法的。 # tup1[0] = 100# 創(chuàng)建一個新的元組 >>> tup3 = tup1 + tup2; >>> print (tup3) (12, 34.56, 'abc', 'xyz')#元組中的元素值是不允許刪除的,但我們可以使用del語句來刪除整個元組,如下實例: >>> tup = ('Google', 'Runoob', 1997, 2000)>>> print (tup) >>> del tup; >>> print ("刪除后的元組 tup : ") >>> print (tup)#以上實例元組被刪除后,輸出變量會有異常信息,輸出如下所示: Traceback (most recent call last):print (tup) # NameError: name 'tup' is not defined NameError: name 'tup' is not defined ('Google', 'Runoob', 1997, 2000) 刪除后的元組 tup :小結(jié):
①元組中的數(shù)據(jù)不可以被修改,不可以被添加,不可以被刪除(當然除非是元組中嵌套列表或者字典,列表和字典中的值是可以被更改的)
②元組的獲取元素的方式和列表一樣,都是通過下標值訪問,下標值都是從0開始
③由于元組只能讀,不能寫,所以元組只有count和index兩個方法
④元組的切片功能和列表一樣
4、元組運算符
與字符串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和復(fù)制,運算后會生成一個新的元組。
| len((1, 2, 3)) | 3 | 計算元素個數(shù) |
| (1, 2, 3) + (4, 5, 6) | (1, 2, 3, 4, 5, 6) | 連接 |
| (‘Hi!’,) * 4 | (‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’) | 復(fù)制 |
| 3 in (1, 2, 3) | True | 元素是否存在 |
| for x in (1, 2, 3): print x | 1 2 3 | 迭代 |
5、元祖內(nèi)置函數(shù)
| 1 | len(tuple) #計算元組元素個數(shù) |
| 2 | max(tuple) #返回元組中元素最大值 |
| 3 | min(tuple) #返回元組中元素最小值 |
| 4 | tuple(seq) #將列表轉(zhuǎn)換為元組 |
三、字典
字典是另一種可變?nèi)萜髂P?#xff0c;且可存儲任意類型對象。
字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:
d = {key1 : value1, key2 : value2 }1、特征:
字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行
字典是無序的;
字典的key是唯一的,不允許同一個鍵出現(xiàn)兩次。創(chuàng)建時如果同一個鍵被賦值兩次,后一個值會被記住,如下實例:
2、基本用法:增加、查看、修改、刪除
通過key查找value
>>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} #存在key返回value >>> print(stu_info["qigao"]) 18#不存在key提示報錯 >>> print(stu_info["wanger"]) Traceback (most recent call last):print(stu_info["wanger"]) KeyError: 'wanger'通過get(key) 查找value
>>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} #存在則返回對應(yīng)的value >>> print(stu_info.get("qigao")) 18#不存在返回None >>> print(stu_info.get("wanger")) None注:get(k)不存在key值,則返回None,通過key直接訪問會報錯,所以建議推薦用get(k)這個方法獲取value
通過key in 字典判斷 key是否存在與字典中
>>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18}>>> print("qigao" in stu_info ) #標準用法,在Python3和Python2.7都可以用True3、字典內(nèi)置函數(shù)&方法
內(nèi)置函數(shù)
| 1 | len(dict) #計算字典元素個數(shù),即鍵的總數(shù) |
| 2 | str(dict) #輸出字典可打印的字符串表示 |
| 3 | type(variable) #返回輸入的變量類型,如果變量是字典就返回字典類型 |
方法
| 1 | dict.clear() #刪除字典內(nèi)所有元素 |
| 2 | dict.copy() #返回一個字典的淺復(fù)制 |
| 3 | dict.fromkeys(seq[, val]) #創(chuàng)建一個新字典,以序列 seq 中元素做字典的鍵,val 為字典所有鍵對應(yīng)的初始值 |
| 4 | dict.get(key, default=None) #返回指定鍵的值,如果值不在字典中返回default值 |
| 5 | dict.items() #以列表返回可遍歷的(鍵, 值) 元組數(shù)組 |
| 6 | dict.keys() #以列表返回一個字典所有的鍵 |
| 7 | dict.setdefault(key, default=None) #和get()類似, 但如果鍵不存在于字典中,將會添加鍵并將值設(shè)為default |
| 8 | dict.update(dict2) #把字典dict2的鍵/值對更新到dict里 |
| 9 | dict.values() #以列表返回字典中的所有值 |
| 10 | pop(key[,default]) #刪除字典給定鍵 key 所對應(yīng)的值,返回值為被刪除的值。key值必須給出.否則,返回default值 |
| 11 | popitem() #返回并刪除字典中的最后一對鍵和值 |
4、循環(huán)字典
''' 遇到問題沒人解答?小編創(chuàng)建了一個Python學(xué)習(xí)交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學(xué)習(xí)教程和PDF電子書! ''' #方法一 for key in dict:print(key,dict[key])#方法二 for k,v in info.items(): #會先把dict轉(zhuǎn)成list,數(shù)據(jù)量大時莫用print(k,v)注:
①方法1的效率比方法2的效率高很多
②方法1是直接通過key取value
③方法2是先把字典轉(zhuǎn)換成一個列表,再去取值
④當數(shù)據(jù)量比較大的時候,用第二種方法時,字典轉(zhuǎn)換成列表的這個過程需要花大量的時間老轉(zhuǎn)換,當然數(shù)據(jù)量不大,沒有關(guān)系,效率差不多
總結(jié)
以上是生活随笔為你收集整理的python教程:列表(list)、元组(tuple)、字典(dict)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python教程:可变长参数(*args
- 下一篇: python元类简述