日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python教程:列表(list)、元组(tuple)、字典(dict)

發布時間:2025/3/20 python 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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']

切片小結:

①序列始終都是從左向右切片的,不能是從右向左

①列表切片時,起始位的元素是包括的,結束位的元素是不包括(又叫顧頭不顧尾),最后一個位置表示步長(names[開始位:結束位:步長])

②如果從0位置取值,0可以省略

③想取最后一個值時,結束位不能是-1,因為結束位的元素不包括,所以只能留空

3、列表函數&方法

函數:

序號函數
1cmp(list1, list2) #比較兩個列表的元素
2len(list) #列表元素個數
3max(list) #返回列表元素最大值
4min(list) #返回列表元素最小值
5list(seq) #將元組轉換為列表

方法:

序號方法
1list.append(obj)  #在列表末尾添加新的對象
2list.count(obj)  #統計某個元素在列表中出現的次數
3list.extend(seq)  #在列表末尾一次性追加另一個序列中的多個值(用新列表擴展原來的列表)
4list.index(obj)  #從列表中找出某個值第一個匹配項的索引位置
5list.insert(index, obj)  #將對象插入列表
6list.pop([index=-1])  #移除列表中的一個元素(默認最后一個元素),并且返回該元素的值
7list.remove(obj)  #移除列表中某個值的第一個匹配項
8list.reverse()  #反向列表中元素
9list.sort([func])  #對原列表進行排序
10list.clear()  #清空列表
11list.copy()  #復制列表

演示:

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! '''# append 列表末尾添加新的對象>>> names = ['a','b','c','d']>>> names.append('e')>>> print(names)['a', 'b', 'c', 'd', 'e']#e是新加的元素#統計(count(元素))>>> names = ['a','b','c','d','a']>>> print(names.count('a')) #統計'a'元素的個數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(下標值,插入的內容) >>> names = ['a','b','c','d']>>> names.insert(0,'1') #0表示需要插入的下標值,'1'表示插入的內容>>> print(names)['1', 'a', 'b', 'c', 'd'] #在下標值為0的地方插入'1'#翻轉(reverse())>>> names = ['a','b','c','d']>>> names.reverse()>>> print(names)['d', 'c', 'b', 'a'] #將整個列表翻轉過來#排序(sort())>>> names = [4,2,3,1]>>> names.sort()>>> print(names)[1, 2, 3, 4]#清空列表(clear())>>> names = ['a','b','c','d']>>> names.clear()>>> print(names)[]#復制(copy())>>> names1 = ['a','b','c','d']>>> names2 = names1.copy()>>> print(names2)['a', 'b', 'c', 'd']

刪除(del、remove(元素)、pop())

#根據下標值刪除元素>>> names = ['a','b','c','d']>>> del names[0] >>> print(names)['b', 'c', 'd']#根據元素刪除>>> 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

二、元組

元組其實跟列表差不多,也是存一組數,只不是它一旦創建,便不能再修改,所以又叫只讀列表

元組使用小括號,列表使用方括號

元組創建很簡單,只需要在括號中添加元素,并使用逗號隔開即可

用途:一般情況下用于自己寫的程序能存下數據,但是又希望這些數據不會被改變,比如:數據庫連接信息等

1.訪問元祖

''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> name = ('a','b','c','d') #下標值跟列表一樣,也是從0開始 >>> print(name[0]) 'a' >>> print(name[1]) 'b' #訪問最后一個元素 >>> print(name[-1]) 'd'

2,count(統計) 與 index(索引)

# count 統計元素數量 >>> name = ('a','b','c','a') >>> print(name.count('a')) 2# index 查看元素下標 >>> name = ('a','b','c','a') >>> print(name.index('b')) 1

3、修改元組 刪除元祖

#元組中的元素值是不允許修改的,但我們可以對元組進行連接組合,如下實例: >>> tup1 = (12, 34.56); >>> tup2 = ('abc', 'xyz')# 以下修改元組元素操作是非法的。 # tup1[0] = 100# 創建一個新的元組 >>> 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 :

小結:

①元組中的數據不可以被修改,不可以被添加,不可以被刪除(當然除非是元組中嵌套列表或者字典,列表和字典中的值是可以被更改的)

②元組的獲取元素的方式和列表一樣,都是通過下標值訪問,下標值都是從0開始

③由于元組只能讀,不能寫,所以元組只有count和index兩個方法

④元組的切片功能和列表一樣

4、元組運算符

與字符串一樣,元組之間可以使用 + 號和 * 號進行運算。這就意味著他們可以組合和復制,運算后會生成一個新的元組。

Python 表達式結果描述
len((1, 2, 3))3計算元素個數
(1, 2, 3) + (4, 5, 6)(1, 2, 3, 4, 5, 6)連接
(‘Hi!’,) * 4(‘Hi!’, ‘Hi!’, ‘Hi!’, ‘Hi!’)復制
3 in (1, 2, 3)True元素是否存在
for x in (1, 2, 3): print x1 2 3迭代

5、元祖內置函數

序號方法
1len(tuple)  #計算元組元素個數
2max(tuple)  #返回元組中元素最大值
3min(tuple)  #返回元組中元素最小值
4tuple(seq)  #將列表轉換為元組

三、字典

字典是另一種可變容器模型,且可存儲任意類型對象。

字典的每個鍵值(key=>value)對用冒號(:)分割,每個對之間用逗號(,)分割,整個字典包括在花括號({})中 ,格式如下所示:

d = {key1 : value1, key2 : value2 }

1、特征:

字典值可以沒有限制地取任何python對象,既可以是標準的對象,也可以是用戶定義的,但鍵不行

  • 字典是無序的;

  • 字典的key是唯一的,不允許同一個鍵出現兩次。創建時如果同一個鍵被賦值兩次,后一個值會被記住,如下實例:

  • >>> dict = {'Name': 'QQ', 'Age': 7, 'Name': 'DD'}>>> print ("dict['Name']: ", dict['Name'])dict['Name']: DD
  • 鍵必須不可變,所以可以用數字,字符串或元組充當,而用列表就不行,如下實例:
  • ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> dict = {['Name']: 'Runoob', 'Age': 7} >>> print ("dict['Name']: ", dict['Name'])#錯誤如下 Traceback (most recent call last):dict = {['Name']: 'Runoob', 'Age': 7} TypeError: unhashable type: 'list'

    2、基本用法:增加、查看、修改、刪除

  • 增加
  • >>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} #新增 >>> stu_info["wanger"] = 30 #輸出結果 >>> print(stu_info) {'zhangsan': 23, 'lisi': 18, 'qigao': 18, 'wanger': 30}
  • 查看
  • 通過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} #存在則返回對應的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都可以用True
  • 修改
  • ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' >>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} #修改'qigao'對應的value值,由18改為23 >>> stu_info["qigao"] = 23 #輸出 >>> print(stu_info) {'wanger': 30, 'lisi': 18, 'zhangsan': 23, 'qigao': 23}
  • 刪除(del、pop、popitem)
  • #del >>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} >>> del stu_info['qigao'] #結果輸出 >>> print(stu_info) {'zhangsan': 23, 'lisi': 18}注:如果是del stu_info的話,則是刪除stu_info這個變量#pop >>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} #刪除時給出提示 >>> print(stu_info.pop("qigao")) 18 #輸出結果 >>> print(stu_info) {'zhangsan': 23, 'lisi': 18}#popitem >>> stu_info = {"zhangsan":23,"lisi":18,"qigao":18} #刪除時給出提示 >>> print(stu_info.popitem()) ('qigao', 18) #輸出結果 >>> print(stu_info) {'zhangsan': 23, 'lisi': 18}

    3、字典內置函數&方法

    內置函數

    序號描述
    1len(dict) #計算字典元素個數,即鍵的總數
    2str(dict) #輸出字典可打印的字符串表示
    3type(variable) #返回輸入的變量類型,如果變量是字典就返回字典類型
    ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #返回字典的元素個數(len ) >>> dict = {'Name': 'zhangsan', 'Age': 7}; >>> print (len (dict)) 2#返回字符串(str) >>> dict = {'Name': 'zhangsan', 'Age': 7}; >>> print (str (dict)) {'Name': 'zhangsan', 'Age': 7}#返回輸入的變量類型(type) >>> dict = {'Name': 'zhangsan', 'Age': 7}; >>> print (type (dict)) <class 'dict'>

    方法

    序號描述
    1dict.clear() #刪除字典內所有元素
    2dict.copy() #返回一個字典的淺復制
    3dict.fromkeys(seq[, val]) #創建一個新字典,以序列 seq 中元素做字典的鍵,val 為字典所有鍵對應的初始值
    4dict.get(key, default=None) #返回指定鍵的值,如果值不在字典中返回default值
    5dict.items() #以列表返回可遍歷的(鍵, 值) 元組數組
    6dict.keys() #以列表返回一個字典所有的鍵
    7dict.setdefault(key, default=None) #和get()類似, 但如果鍵不存在于字典中,將會添加鍵并將值設為default
    8dict.update(dict2) #把字典dict2的鍵/值對更新到dict里
    9dict.values() #以列表返回字典中的所有值
    10pop(key[,default]) #刪除字典給定鍵 key 所對應的值,返回值為被刪除的值。key值必須給出.否則,返回default值
    11popitem() #返回并刪除字典中的最后一對鍵和值
    #刪除字典內所有元素 clear() >>> dict = {'Name': 'Zara', 'Age': 7}>>> print ("字典長度 : %d" % len(dict)) >>> dict.clear() >>> print ("字典刪除后長度 : %d" % len(dict))#輸出: 字典長度 : 2 字典刪除后長度 : 0#-----------------------------------------------------------------------------------##返回一個字典的淺復制 copy() >>> dict1 = {'user': 'runoob', 'num': [1, 2, 3]}>>> dict2 = dict1 # 淺拷貝: 引用對象 >>> dict3 = dict1.copy() # 淺拷貝:深拷貝父對象(一級目錄),子對象(二級目錄)不拷貝,還是引用>>> # 修改 data 數據 >>> dict1['user'] = 'root' >>> dict1['num'].remove(1)>>> # 輸出結果 >>> print(dict1) >>> print(dict2) >>> print(dict3)#輸出: {'user': 'root', 'num': [2, 3]} {'user': 'root', 'num': [2, 3]} {'user': 'runoob', 'num': [2, 3]}#-----------------------------------------------------------------------------------#函數用于創建一個新字典,以序列seq中元素做字典的鍵,value為字典所有鍵對應的初始值 fromkeys() >>> seq = ('name', 'age', 'sex')>>> dict = dict.fromkeys(seq) >>> print ("新的字典為 : %s" % str(dict))>>> dict = dict.fromkeys(seq, 10) >>> print ("新的字典為 : %s" % str(dict))#輸出: 新的字典為 : {'name': None, 'age': None, 'sex': None} 新的字典為 : {'name': 10, 'age': 10, 'sex': 10}#-----------------------------------------------------------------------------------#函數返回指定鍵的值,如果值不在字典中返回默認值 get() >>> dict = {'Name': 'Runoob', 'Age': 27}>>> print ("Age 值為 : %s" % dict.get('Age')) >>> print ("Sex 值為 : %s" % dict.get('Sex', "NA"))#輸出: Age 值為 : 27 Sex 值為 : NA#-----------------------------------------------------------------------------------#方法以列表返回可遍歷的(鍵, 值) 元組數組 items() >>> dict = {'Name': 'Runoob', 'Age': 7}>>> print ("Value : %s" % dict.items())#輸出: Value : dict_items([('Name', 'Runoob'), ('Age', 7)])#-----------------------------------------------------------------------------------#返回一個字典所有的鍵值 keys() >>> dict = {'Name': 'QQ', 'Age': 7}>>> print ("字典所有的鍵為 : %s" % dict.keys()) >>> print ("字典所有值為 : ", list(dict.values()))#輸出: 字典所有的鍵為 : dict_keys(['Name', 'Age']) 字典所有值為 : ['QQ', 7]#-----------------------------------------------------------------------------------#和get()方法類似,如果字典中包含有給定鍵,則返回該鍵對應的值,否則返回為該鍵設置的值 setdefault() >>> dict = {'Name': 'Runoob', 'Age': 7}>>> print ("Age 鍵的值為 : %s" % dict.setdefault('Age', None)) >>> print ("Sex 鍵的值為 : %s" % dict.setdefault('Sex', None)) >>> print ("新字典為:", dict)#輸出: Age 鍵的值為 : 7 Sex 鍵的值為 : None 新字典為: {'Name': 'Runoob', 'Age': 7, 'Sex': None}#-----------------------------------------------------------------------------------#把字典dict2的鍵值對更新到dict里 update() >>> dict = {'Name': 'Runoob', 'Age': 7} >>> dict2 = {'Sex': 'female' }>>> dict.update(dict2) >>> print ("更新字典 dict : ", dict)#輸出: 更新字典 dict : {'Name': 'Runoob', 'Age': 7, 'Sex': 'female'}#-----------------------------------------------------------------------------------#返回字典中的所有值 values() >>> dict = {'Name': 'Zara', 'Age': 7}>>> print ("Value : %s" % dict.values())#輸出: Value : dict_values(['Zara', 7])

    4、循環字典

    ''' 遇到問題沒人解答?小編創建了一個Python學習交流QQ群:778463939 尋找有志同道合的小伙伴,互幫互助,群里還有不錯的視頻學習教程和PDF電子書! ''' #方法一 for key in dict:print(key,dict[key])#方法二 for k,v in info.items(): #會先把dict轉成list,數據量大時莫用print(k,v)

    注:

    ①方法1的效率比方法2的效率高很多

    ②方法1是直接通過key取value

    ③方法2是先把字典轉換成一個列表,再去取值

    ④當數據量比較大的時候,用第二種方法時,字典轉換成列表的這個過程需要花大量的時間老轉換,當然數據量不大,沒有關系,效率差不多

    總結

    以上是生活随笔為你收集整理的python教程:列表(list)、元组(tuple)、字典(dict)的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。