python基礎-列表

列表中能夠聽任意元素

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