1. 程式人生 > >python序列構成的陣列

python序列構成的陣列

# 容器序列
    # list,tuple,collection.deque
    # 存放的是他們所包含的任意物件的引用
# 扁平序列
    # str,bytes,bytearray,memoryview和array.array
    # 存放的是值,扁平序列其實是一段連續的記憶體空間

# 可變序列
    # list,
# 不可變序列
    # tuple,str和bytes

text = [i for i in range(10)]  # 列表推導式,如果超過二行,考慮for迴圈
print(text)                    # 列表推導的作用只用一個:生成列表


text = (i for i in range(10))  # 生成表示式,只不過把方括號換成圓括號而已
print(text)


text = tuple(i for i in range(10))  # 生成表示式是一個函式呼叫過程中的唯一引數時,那麼不需要
print(text)                         # 用額外的括號把它圍起來


# 用*處理剩下的元素    在平行賦值中,*字首只能出現在一個變數前面
# 1 函式
    # def main(*args, **kwargs):
    # 在python中,函式用*args來獲取不確定數量的位置引數,**kwargs獲取不確定數量的關鍵字傳參

# 2 元組
a, b , *rest = range(5)
print(a, b, rest)


# 列表或元祖的方法和屬性
#                          列表          元組
# s.__add__(s2)             *             *       s+s2 拼接 ————建立一個新物件
# s.__iadd__(s2)            *                     s += s2,就地拼接————元祖不可變
# s.append(e)               *
# s.clear()                 *                     刪除所有元素
# s.__contain(e)            *             *       s是否包含e————一般使用in
# s.count(e)                *             *       e在s中出現的次數
# s.extend(it)              *                     把可迭代物件it追加給s
# s.index(e)                *             *       在s中找到元素e第一次出現的位置
# s.insert(p, e)            *                     在位置p之前插入元素e
# s.pop([p])                *                     刪除最後或位於p位置的元素,並返回他的值
# s.remove(e)               *                     刪除s中第一次出現的e
# s.reverse()               *                     就地把s的元素倒序排列
# s.sort([key], [reverse])  *                     就地對s的元素進行排序
# sorted內建函式,可接受任何可迭代物件,最後返回一個列表。




# 當陣列不是首選時
    # 存放大量float,陣列array效率更高
    # 頻繁的對序列做先進先出的操作,deque(雙端佇列)的速度會更快
    # 如果查詢操作很頻繁,用set會更合適