python內建資料類型:列表和元組

來源:互聯網
上載者:User

序列(列表和元組)

2.2 通用序列操作

1)索引
    從左至右計數(第一個)為0,從右至左計數(最後一個)-1.
    字串可以直接使用索引:"hello"[2]

2)分區
    提供兩個邊界作為索引,第一個邊界包括,第二個邊界不包括。
    numbers = {1,2,3,4,5,6,7,8,9,10}
    
    優雅捷徑:
        numbers[-3:-1]    [8,9]
        numbers[-3:0]    []  左邊索引必須比右邊索引早出現才不是空集
        numbers[-3:]    不填邊界表示到最邊界處
        numbers[:]    整個列表
    步長:    
        預設步長是1,如果不是1,需要指定
        numbers[m:n:k]    指定步長為k
        步長不能為0,但步長可以為負數,為負數時,列表的左右邊界應該是從右至左的。

3)序列相加:
    [1,2,3] + ["hello"]        [1, 2, 3, 'hello']
    但列表和字串不能相加

4)乘法:
    “python” * 2        “pythonpython”
    [42] * 3        [42,42,42]
    None 空列表 初始化

5)成員資格:in
    返回布爾值:某個對象是否為一個序列的成員
    

6)長度
    內建函數len,max,min

-----------------------------------------------------------------------------

2.3 列表:

1.list函數
    
    將字串或其他系列轉換成列表
    由於字串不可變,轉換成列表後可以改變:
    list("hello")    ['h','e','l','l','o']
    
    ps:用 ''.join(somelist)可以將一個列表somelist轉換成字串

2.列表基本操作

    1)改變列表:元素賦值    
        不能為一個不存在的索引位置賦值

    2)刪除元素
        del names[2]
        刪除後列表長度自動縮減,順序保持

    3)分區賦值
        一次為多個元素賦值
        a 注意在普通賦值時,不存在的索引處不能賦值,但是分區賦值卻可以實現使用與原分區不等長的序列將分區替換:
        name = list('perl')
        name[1:] = list('ython')

        b 替換一個空分區的分區賦值可以實現插入一個序列

        c 同理,給一個分區賦值一個空的分區可以用來刪除這個分區

3.列表方法
    
    1)append
        lst.append(xxx):注意沒有傳回值!
    
    2)count
        統計某個元素在列表中出現的次數:lst.count(xxx)

    3)extend
        在一個序列的末尾追加另一個序列中的多個值
        a.extend(b) 將b追加到a後面了,a此時改變了
    
    4)index
        names.index('jmz')
        找到列表中第一個匹配項的索引,找不到會引發異常
    
    5)insert
        names.insert(5,'jmz')
        將‘jmz’這個名字插入為索引5位置處
    
    6)pop
        lst.pop() 移除最後一個元素並返回這個移除的元素
        pop方法是唯一一個既能修改列表又能返回元素的方法,注意以上方法中修改列表的方法均不傳回值。
    
    7)remove
        names.remove('jmz')  刪除第一個匹配的項目
    
    8)reverse
        names.reverse()    將列表元素倒序存放
    
    9)sort
        注意也是沒有傳回值
        x.sort()  x變得有序,但這個運算式並不傳回值
        y = x.sort並不能將x的有序形式賦值給y
        
        可以這樣:
        y = x[:]
        y.sort()
        或者:
        y = sorted(x)
        來實現一樣的功能
    
    10)進階排序
        
        cmp參數來指定自己的排序方式:numbers.sort(cmp)
        定義你自己的cmp函數,小於時返回負數,大於時返回正數,相等時返回0
        
        key參數指定排序鍵:names.sort(key = len)  按照長度        
        
        reverse參數指定是否反向排序:number.sort(reverse = true)

-----------------------------------------------------------------------------

2.4 元組學習:不可變序列

    如果你用逗號隔開一些值,那麼就自動建立了元組
    
    1)tuple函數
        將字串,序列轉換為元組,如果被轉換的本身就是元組,則原樣返回。
        tuple([1,2,3])        (1,2,3)
        tuple('hello')        ('h','e','l','l','l','o')
        tuple((1,2,3))        (1,2,3)

-----------------------------------------------------------------------------

總結:

    列表:[]   可變序列
    元組:()    不可變序列
    
    一些方法

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.