列表是最經常使用的 Python 數據類型,它能夠做爲一個方括號內的逗號分隔值出現
建立一個列表,只要把逗號分隔的不一樣的數據項使用方括號括起來便可html
list1 = [1, 2, 3, 4, 5, 6, 7] list2 = [['a', 'b'], 'c'] # 建立空列表 list3 = [] list4 = list()
示例:python
list1 = [1, 2, 3, 4, 5, 6, 7] list2 = ['a', 'b', 'c'] print(list1[2 : 4]) # 讀取第3到第4個數據(左開右閉) print(list1[-3]) # 從右開始讀取第三個數據 print(list1[: 5]) # 讀取前5個數據 print(list1[0 : -1 : 2]) # 每隔一個數據讀一個數據 print(list1[:: -1]) # 倒序打印列表 print(list1 + list2) # 將list1和list2拼接起來
輸出結果:數據結構
[3, 4] 5 [1, 2, 3, 4, 5] [1, 3, 5] [7, 6, 5, 4, 3, 2, 1] [1, 2, 3, 4, 5, 6, 7, 'a', 'b', 'c']
列表中的元素不只能夠是字符串或數字,還能夠是字典、集合或是其餘列表app
list1 = [1, 2, 3, 4, 5] list2 = [2, 2, 2, 2, 2] list3 = [list1, list2] print(list3) print(list3[0][3:])
輸出結果:函數
[[1, 2, 3, 4, 5], [2, 2, 2, 2, 2]] [4, 5]
函數 | 做用 |
---|---|
len(list) | 列表元素個數 |
max(list) | 返回列表元素最大值 |
min(list) | 返回列表元素最小值 |
list(seq) | 將元組轉換爲列表 |
方法 | 做用 |
---|---|
list.append(obj) | 在列表末尾添加新的對象 |
list.count(obj) | 統計某個元素在列表中出現的次數 |
list.extend(seq) | 在列表末尾一次性追加另外一個序列中的多個值(用新列表擴展原來的列表) |
list.index(obj) | 從列表中找出某個值第一個匹配項的索引位置 |
list.insert(index,obj) | 將對象插入列表(經過index指定位置) |
list.pop([index=-1]) | 移除列表中的一個元素(默認最後一個元素),而且返回該元素的值 =del list[-1] |
list.remove(obj) | 移除列表中某個值的第一個匹配項 |
list.reverse() | 反向列表中元素 |
list.sort(key=None,reverse=False) | 對原列表進行排序 |
list.clear() | 清空列表 |
list.copy() | 複製列表 |
在循環列表的同時進行修改,可能致使一些問題:code
def main(): a = [1, 2, 3, 4, 5, 6, 7] for x in a: if x > 3: a.remove(x) print(a) b = [1, 2, 3, 4, 5, 6, 7] for x in b[:]: if x > 3: b.remove(x) print(b) if __name__ == '__main__': main()
輸出結果:htm
[1, 2, 3, 5, 7] [1, 2, 3]
很明顯,b 的循環結果纔是想要的結果,a 在循環時跳過了一些元素
由於 b[:]
是 b
的一個複製,並無被修改對象
因爲列表的特性,能夠用它來簡單模擬其餘的數據結構blog
關於 Python 中的棧(stack) <- 點擊查看排序
class Stack(object): def __init__(self): self.stack = list() def push(self, data): """ 進棧函數 """ self.stack.append(data) def pop(self): """ 出棧函數, """ return self.stack.pop() def gettop(self): """ 取棧頂 """ return self.stack[-1]
class Queue(object): def __init__(self): self.queue = list() def put(self, data): self.queue.append(data) def get(self): return self.queue.pop(0) def qsize(self): return len(self.queue)