# 列表是python中最基本的數據結構,它是一個有序序列,序列中的每個元素都分配一個數字(位置,索引)
# 1、我們可以使用 方括號,中括號[]來創建列表
# 2、我們可以直接將序列放在list(seq)
# python中的列表是可變的,且列表內部由元素組成,元素可以是任意對象,也就是說列表的數據項不需要具有相同的類型,比如整形、浮點型、字符串、其他類的對象、實例等都可以作為列表的元素。
msg = [3,'v',['a',1,2],(1,2,3,4,5),{'a':11,'b':13}]
print(msg)
# 創建一個列表,兩種方式
a = [1,2,3,4,5]
print(a)
print(type(a))
a1 = list("abcdef")
print(a1)
print(type(a1))
# 定義一個空列表
a2 = list()
a3 = []
print(a2,a3)

# 列表是有序的序列,存在下標index
# 索引從0開始
# 索引支持負數,負數從-1開始
# 查找列表單個字符
print(a1[2])
# 負數從右往左數 -1開始
print(a1[-2])
# 查找列表多個字符
print(a1[1:3])

# 列表常用操作
# 數據修改
# 數據刪除
# 數據組合
# 數據重複
# 列表數據修改,只需要找到這個需要修改的元素,重新賦值
a1[2] = "123"
print(a1)
# 列表刪除
del a1[3]
print(a1)
# 列表組合
print(a + a1)
# 列表重複
print(a1*3)

# 列表常用方法
# append 追加
# extend 擴展
# insert 插入
# pop 彈出
# remove 移除
# clear 清空
# index 查詢索引
# reverse 反轉
# sort 排序
# 單個追加
a.append(5)
print(a)
# 擴展,可批量追加
c = [6,7,8]
a.extend(c)
print(a)
# 插入,通過索引插入位置,在0位置插入0
a.insert(0,0)
print(a)

# 彈出,可通過索引彈出,不寫默認末尾彈出
a.pop(2)
print(a)
# 移除 通過索引移除指定元素,移除1這個位置的元素
a.remove(1)
print(a)
# 清除 直接清除整個列表數據
a.clear()
print(a)

# 查詢指定元素的位置
a.extend(c)
print(a)
print(a.index(7))
# 反轉
a.reverse()
print(a)
# 排序
d = [9,2,4,6,12]
a.extend(d)
print(a)
a.sort()
print(a)

# 列印列表長度
msg = [1,2,3,4,5,6,7]
length = len(msg) # 長度
print(length)

msg1 = [1,2,3,4,"a","c","b","d"]
# 查找指定元素在列表裡面的下標,若沒有,則會報錯
msg2 = msg1.index("a")
print(msg2)
msg3 = msg1.index("f")
print(msg3)

#指定從第幾個下標開始查詢
msg4 = msg1.index('Hello',1)
print(msg4)

# 統計指定元素的個數
msg5 = msg1.count('Hello')
print(msg5)


#Python爬蟲#