Python 列表list使用介紹

來源:互聯網
上載者:User
一組有序項目的集合可變的資料類型【可進行增刪改查】列表中可以包含任何資料類型,也可包含另一個列表【可任意組合嵌套】列表是以方括弧“[]”包圍的資料集合,不同成員以“,”分隔列表可通過序號訪問其中成員

定義

>>> l = [] #空列表>>> l = [1,2,3]>>> l = [1,2,3,['a','b']]>>> l = list('linuxeye')>>> l['l', 'i', 'n', 'u', 'x', 'e', 'y', 'e']>>> l = list(range(5))>>> l[0, 1, 2, 3, 4]>>> l = '1;2;3;4;5'.split(';')>>> l['1', '2', '3', '4', '5']

內建函數list(a_sequence) 可以將一個序列轉為列表

索引
正索引是編號是從左至右,0開始;負索引編號是從右往左,-1、-2 …;取範圍值都是從左至右

>>> LanguageList = ['Python','Shell','Perl','PHP','java','C',"C++","Lisp"]>>> LanguageList[0] #取第一個值'Python'>>> LanguageList[3] #第四個值'PHP'>>> LanguageList[3:]['PHP', 'java', 'C', 'C++', 'Lisp']>>> LanguageList[:3]['Python', 'Shell', 'Perl']>>> LanguageList[2:5]['Perl', 'PHP', 'java']
>>> LanguageList[-1] #倒數第一個值'Lisp'>>> LanguageList[-2] #倒數第二個值'C++'>>> LanguageList[-5:]['PHP', 'java', 'C', 'C++', 'Lisp']>>> LanguageList[-5:-2]['PHP', 'java', 'C']>>> LanguageList[:-2]['Python', 'Shell', 'Perl', 'PHP', 'java', 'C']

增加元素

>>> LanguageList['Python', 'Shell', 'Perl', 'PHP', 'java', 'C', 'C++', 'Lisp']>>> LanguageList.append('GO')>>> LanguageList['Python', 'Shell', 'Perl', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO']>>> LanguageList.insert(3,'Python') #往PHP元素前插入>>> LanguageList['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO']>>> LanguageList.extend(['Ruby','C#'])>>> LanguageList['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO', 'Ruby', 'C#']

搜尋

>>> LanguageList = ['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO', 'Ruby', 'C#']>>> LanguageList.index('Python')0>>> LanguageList.index('C')6>>> LanguageList.index('c')Traceback (most recent call last): File "", line 1, in ValueError: list.index(x): x not in list>>> 'c' in LanguageListFalse>>> LanguageList.index('Python') #統計一個元素的出現次數2

刪除元素

>>> LanguageList = ['Python', 'Shell', 'Perl', 'Python', 'PHP', 'java', 'C', 'C++', 'Lisp', 'GO', 'Ruby', 'C#']>>> LanguageList.remove('C')>>> LanguageList.remove('Python')>>> LanguageList.remove('c')Traceback (most recent call last): File "", line 1, in ValueError: list.remove(x): x not in list>>> LanguageList.pop()'C#'>>> LanguageList['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby']>>> LanguageList.pop(-2)['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'Ruby']>>> del LanguageList[-3:-1]>>> LanguageList['Shell', 'Perl', 'Python', 'PHP', 'java', 'Ruby']

remove從列表中只刪除一個值的首次出現。
pop會做兩件事: 刪除列表的最後一個元素, 然後返回刪除元素的值。

修改元素

>>> LanguageList = ['Python','Shell', 'Perl', 'Python', 'PHP', 'java', 'Ruby']>>> LanguageList[-2] = 'C'>>> LanguageList['Python', 'Shell', 'Perl', 'Python', 'PHP', 'C', 'Ruby']>>> LanguageList[LanguageList.index('C')] = 'JAVA'>>> LanguageList['Python', 'Shell', 'Perl', 'Python', 'PHP', 'JAVA', 'Ruby']

運算子

>>> LanguageList['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby']>>> LanguageList = LanguageList + ['Python','C']>>> LanguageList['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby', 'Python', 'C']>>> LanguageList += ['java']>>> LanguageList['Shell', 'Perl', 'Python', 'PHP', 'java', 'C++', 'Lisp', 'GO', 'Ruby', 'Python', 'C', 'java']>>> NumList = [1,2,3] * 3>>> NumList[1, 2, 3, 1, 2, 3, 1, 2, 3]

排序

>>> NumList = [2,5,3,6,1,4]>>> NumList.reverse()>>> NumList[4, 1, 6, 3, 5, 2]>>> NumList[::-1] #和reverse效果相同>>> NumList[2, 5, 3, 6, 1, 4]>>> NumList.sort()>>> NumList[1, 2, 3, 4, 5, 6]

sort可接受參數

cmp,比較函數,接受兩個參數,小於時返回負,大於返回正,相等返回0key,指定排序鍵reverse,指定是否反序

列表的比較操作 , 隱式調用cmp方法 , 比較規則是逐個掃描元素進行比較, 如果可以比較 , 則比較, 如果相等掃描下一個元素 , 如果不相等返回結果 , 如果兩個元素類型不可以比較 , 就比較兩個對象的 id()值。如果一直相等 ,直到一個列表掃描結束 , 那麼返回較長的列表較大

>>> L = [(13,54),(11,59),(15,55),(12,57),(10,56)]>>> L.sort(key=lambda x:x[1])>>> L[(13, 54), (15, 55), (10, 56), (12, 57), (11, 59)]>>> L.sort(key=lambda x:x[1],reverse=1) #或者reverse=True>>> L[(11, 59), (12, 57), (10, 56), (15, 55), (13, 54)]

sort與sorted函數區別

NumList = [2, 5, 3, 6, 1, 4]>>> sorted(NumList)[1, 2, 3, 4, 5, 6]>>> NumList[2, 5, 3, 6, 1, 4]>>> NumList.sort()>>> NumList[1, 2, 3, 4, 5, 6]

sort: 在原list上排序,不返回排序後的list
sorted: 不改變原list,返回排序後的list

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.