《python基礎教程》 --讀書筆記(1)

列表和元組

  數據結構是通過某種方式(例如對元素進行編號)組織在一起的的數據元素的集合,這些元素可以是數字或者字符,甚至是其他數據結構。在python中,最基本的數據結構是序列。序列中的每一個元素被分配一個序列號——元素的位置,也稱爲索引。

序列通用操作

  所有的序列都可以進行某些特定的操作,這些操作包括:索引(indexing)分片(slicing)加(adding)乘(multipiying)迭代(iteration)計算長度檢查某個元素是否屬於序列的成員找出最大元素及最小元素的內建函數

  1. 索引
    序列中的所有元素都是有編號的,從0開始遞增,可通過編號訪問元素。使用負索引時,python會從右邊,也就是最後一個元素開始計數,最後一個元素的位置編號是-1
>>> greeting = "hello"
>>> greeting[0]
'h'
>>> greeting[-1]
'o'
  1. 分片
    a. 通過分片操作來訪問一定範圍內的元素,分片通過冒號隔開的兩個索引來實現。符合左閉右開原則,意思就是分片操作需要提供兩個索引作爲邊界,第一個索引的元素是包含在分片內的,而第二個則不在
>>> tag = "https://editor.csdn.net/"
>>> tag[8:23]
'editor.csdn.net'
>>> tag[8:24]
'editor.csdn.net/'
>>> tag[:8]
'https://'
>>> tag[8:]
'editor.csdn.net/'
>>> tag[:]
'https://editor.csdn.net/'

b. 更大的步長,步長不能爲0,但可以是負數,此時分片從右到左提取元素。

>>> numbers = [1,2,3,4,5,6,7,8,9]
>>> numbers[0:10:2]
[1, 3, 5, 7, 9]
>>> numbers[::4]
[1, 5, 9]
>>> numbers[::-2]
[9, 7, 5, 3, 1]
  1. 序列相加
    兩種相同類型的序列才能進行鏈接操作
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> "hello, "+"world!"
'hello, world!
  1. 乘法
    用數字x乘以一個序列會生成新的序列,在新的序列中,原來的序列會被重複x次
>>> [42]* 5
[42, 42, 42, 42, 42]
  1. 成員資格
    檢查一個值是否在序列中,可以使用in運算符
>>> permissions = "rw"
>>>> "w" in permissions
True
>>> "x" in permissions
False
  1. 長度,最小值和最大值
    使用內建函數len、min、max。
>>> numbers = [1,2,6,8]
>>> len(numbers)
4
>>> min(numbers)
1
>>> max(numbers)
8

列表

列表可以使用所有適用於序列的標準操作

  1. 元素賦值
>>> x =[1,1,1]
>>> x[1] = 2
>>> x
[1, 2, 1]
  1. 刪除元素
>>> del x[1]
>>> x
[1, 1]
  1. 分片賦值
    可以一次性爲多個元素賦值,可以在不需要替換任何原有元素的情況下插入新的元素,也可以通過分片賦值來刪除元素
>>> name = list("perl")
>>> name[1:] = list("ython")
>>> name
['p', 'y', 't', 'h', 'o', 'n']
>>> numbers = [1,5]
>>> numbers[1:1] = [2,3,4]
>>> numbers
[1, 2, 3, 4, 5]
>>> numbers[1:4] = []
>>> numbers
[1, 5]
  1. 列表方法
  • append
    append方法用於在列表末尾追加新的對象
>>> lst = [1,2,3]
>>> lst.append(4)
>>> lst
[1, 2, 3, 4]
  • count
    count方法統計某個元素在列表中出現的次數
>>> x = [[1,2],1,2,[1]]
>>>> x.count(1)
1
  • extend
    extend方法可以在列表末尾一次性追加另一個序列的多個值
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a.extend(b)
>>> a
[1, 2, 3, 4, 5, 6]

extend方法看起來很像連接操作,區別在於,extend方法修改了被擴展的序列

>>> a = [1,2,3]
>>> b = [4,5,6]
>>> a+b
[1, 2, 3, 4, 5, 6]
>>> a
[1, 2, 3
  • index
    index方法用於從列表中找出某個值第一個匹配的索引位置
>>> lst = [1,2,3,4,5,4,3,2,1]
>>> lst.index(2)
1
>>> lst.(6)
  File "<stdin>", line 1
    lst.(6)
        ^
SyntaxError: invalid syntax
  • insert
    insert用於將對象插入到列表中
>>> lst.insert(-1,6)
>>> lst
[1, 2, 3, 4, 5, 4, 3, 2, 6, 1]
  • pop
    pop方法會移除列表中的一個元素(默認是最後一個),並且返回該元素的值
>>> lst
[1, 2, 3, 4, 5, 4, 3, 2, 6, 1]
>>> lst.pop()
1
>>> lst.pop(4)
5
>>> lst
[1, 2, 3, 4, 4, 3, 2, 6]
>>> lst.append(lst.pop())
>>> lst
[1, 2, 3, 4, 4, 3, 2, 6]
  • remove
    remove方法用於移除列表中某個值的第一個匹配項,沒有返回值
>>> lst.remove(2)
>>> lst
[1, 3, 4, 4, 3, 2, 6]
  • reverse
    reverse方法將列表的元素反向存放
>>> lst.reverse()
>>> lst
[6, 2, 3, 4, 4, 3, 1]
  • sort
    以默認的方式進行排序
>>> lst
[6, 2, 3, 4, 4, 3, 1]
>>> lst.sort()
>>> lst
[1, 2, 3, 3, 4, 4, 6]

元組:不可改變的序列

元組與列表一樣,也是一種序列。唯一的不同是元組不能修改,創建語法,用逗號分隔。因爲不可變的屬性,元組可以在映射時中當作鍵使用

>>> 1,2,3
(1, 2, 3)
>>> ()
()
>>> 42,
(42,)
  • tuple函數
    以一個序列爲參數並把它轉化爲元組
>>> tuple([2,3,4])
(2, 3, 4)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章