Python list

Python list

列表是最經常使用的 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]

隊列

關於 Python 中的隊列(queue) <- 點擊查看

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)
相關文章
相關標籤/搜索