列表中能夠聽任意元素
list1 = ["abc", "張三", 18, True, {"name":"李四", "age":20}, ["A", "B", "C"]]
# 列表是有序的 能夠使用索引的方法獲取數據
print(list1[3], type(list1[3])) # True <class 'bool'>
print(list1[4], type(list1[4])) # {'name': '李四', 'age': 20} <class 'dict'>
列表的增刪改查
增
append 追加數據
list2 = [1,2,3]
# append 追加,增長在列表的最後邊
list2.append(4)
print(list2.append(5)) # 輸出結果:None 無效指令 輸出內容爲空 append是一個指令,不能打印,只能追加完成後,再打印
print(list2) # [1, 2, 3, 4]
# 舉例:
name = ["張三", "李四", "王五"]
while True:
input_name = input("請輸入要添加的學生姓名(按Q或q退出程序!):")
if input_name.upper() == "Q":
break
name.append(input_name)
print(name)
insert 插入數據
# insert 在什麼位置插入什麼數據
name.insert(1, "insert數據") # 插入到1索引位置
print(name) # ['張三', 'insert數據', '李四', '王五']
extend 遍歷追加
list3 = ["A", "B", "C"]
list3.extend("D")
print(list3) # ['A', 'B', 'C', 'D']
list3.extend(["a", "b", 1, 2])
print(list3) # ['A', 'B', 'C', 'D', 'a', 'b', 1, 2]
list3.extend(['aa', ["bb", "cc"], 11, 22]) # 只遍歷第一層列表
print(list3) # ['A', 'B', 'C', 'D', 'a', 'b', 1, 2, 'aa', ['bb', 'cc'], 11, 22]
刪除
pop 刪除索引位置刪除數據
list4 = ['A', 'B', 'C', 1, 2, 'D']
list4.pop(-2)
print(list4) # ['A', 'B', 'C', 1, 'D']
pop_value = list4.pop(-2) # 有返回值
print(pop_value) # 1
print(list4) # ['A', 'B', 'C', 'D']
# 不指定索引值,默認刪除最後一個數據
list4.pop()
print(list4) # ['A', 'B', 'C']
# 索引越界 直接報錯
list4.pop(4) # IndexError: pop index out of range
# 列表爲空,不能pop 直接報錯
list5 = []
list5.pop() # IndexError: pop from empty list
remove 移除指定元素
list6 = ['A', 'B', 'C', 1, 2, "A", "A", 'D']
list6.remove(2) # 刪除指定數據
print(list6) # ['A', 'B', 'C', 1, 'D']
list6.remove("C")
print(list6) # ['A', 'B', 1, 'D']
# 列表中存在形同元素, 默認只刪除從左數第一個
list6.remove("A")
print(list6) # ['B', 1, 'A', 'A', 'D']
# 刪除列表中不存在的數據 直接報錯
list6.remove("G")
print(list6) # ValueError: list.remove(x): x not in list
clear 清空列表
list7 = ['A', 'B', 'C', 1, 2, "A", "A", 'D']
list7.clear()
print(list7) # []
del 按照索引刪除
list8 = ['A', 'B', 'C', 1, 2, "A", "A", 'D']
del list8[3]
print(list8) # ['A', 'B', 'C', 2, 'A', 'A', 'D']
# 按照切片(步長)進行刪除
del list8[::2]
print(list8) # ['B', 2, 'A']
update
# update
list9 = ['A', 'B', 'C', 'D']
# 直接使用索引進行賦值
list9[0] = "a"
print(list9) # ['a', 'B', 'C', 'D']
list9[2:] = "EFGH"
print(list9) # ['a', 'B', 'E', 'F', 'G', 'H']
# 給列表中的多個元素賦值
l = list("0123456789")
l[6:] = "abcdef"
print(l) # ['0', '1', '2', '3', '4', '5', 'a', 'b', 'c', 'd', 'e', 'f']
# 把列表中下標6到末尾的值更新爲"A","B"
l[6:] = "AB"
print(l) # ['0', '1', '2', '3', '4', '5', 'A', 'B']
# 把列表中索引2,3的值更新爲C
l[2:4] = "C"
print(l) # ['0', '1', 'C', '4', '5', 'A', 'B']
# 在不替換原有元素的狀況下加入新元素
l[2:2] = "23"
print(l) # ['0', '1', '2', '3', 'C', '4', '5', 'A', 'B']
# 將兩個元素賦值給四個空間,報錯
l[2::2] = "AB" # 從下標2取值到末尾,步長爲2,需替換4個值,而給到的數據只有兩個,因此報錯
print(l) # ValueError: attempt to assign sequence of size 2 to extended slice of size 4
# 指定數據超過被替換數據個數,一樣報錯
l[2::2] = "ABCDE"
print(l) # ValueError: attempt to assign sequence of size 5 to extended slice of size 4
# 將4個值替換4個值 成功
l[2::2] = "ABCD"
print(l) # ['0', '1', 'A', '3', 'B', '4', 'C', 'A', 'D']
查
for i in l:
print(i)
列表嵌套
l1 = [1, 2, "abcd", "lisi", 18, ["name", "age", 20]]
l1[2] = l1[2].upper()
print(l1) # [1, 2, 'ABCD', 'lisi', 18, ['name', 'age', 20]]
# 給列表中嵌套列表追加數據
l1[5].append("sex")
print(l1) # [1, 2, 'ABCD', 'lisi', 18, ['name', 'age', 20, 'sex']]
# 修改列表中嵌套列表元素的值
l1[5][2] = 18
print(l1) # [1, 2, 'ABCD', 'lisi', 18, ['name', 'age', 18, 'sex']]
l1[-1][0] = "user_" + l1[-1][0]
print(l1) # [1, 2, 'ABCD', 'lisi', 18, ['user_name', 'age', 18, 'sex']]