修改、添加、刪除元素
def list_practice():
#索引從0開始,列表中的元素類型可以不一樣
a = [0, 1, 2, "are", "you", "ok"]
print(a)
print(a[-1]) #訪問倒數第一個元素
print(a[-2]) #訪問倒數第二個元素
#元素修改
a[0] = 5
print(a)
#添加元素 .append() .extend()
a.append("!")
print(a)
b = ["lei", "jun"]
a.append(b) #把b當成一個元素,添加 [5, 1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun']]
print(a)
a.extend(b) #把b中的每一元素添加, [5, 1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun'], 'lei', 'jun']
print(a)
#插入元素 insert
#.insert() 在index處添加空間,並將value存儲到這個地方。 這種操作將列表中既有的每個元素都右移一個位置
a.insert(1, -1) #.insert(self, index, value) [5, -1, 1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun'], 'lei', 'jun']
print(a)
a.insert(-1, 100) #[5, -1, 1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun'], 'lei', 100, 'jun']
print(a)
#刪除元素del
del a[0]
print(a) #[-1, 1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun'], 'lei', 100, 'jun']
#.pop() #彈出列表最後一個元素(或者任意位置)
c = a.pop()
print(c) #jun
print(a) #[-1, 1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun'], 'lei', 100]
c = a.pop(0)
print(c) #-1
print(a) #[1, 2, 'are', 'you', 'ok', '!', ['lei', 'jun'], 'lei', 100]
#使用.remove()刪除 (可以根據值刪除) .remove() 只刪除 第一個 指定的值
a.remove(['lei', 'jun'])
print(a) #[1, 2, 'are', 'you', 'ok', '!', 'lei', 100]
a = [1, 2, 3]
b = [4, 5, 6]
c = []#創建一個空列表
c.append(a)
c.append(b)
print(c) #[[1, 2, 3], [4, 5, 6]]
if __name__ == "__main__":
list_practice()
組織列表
.sort()
sorted(list)
len(list)
.reverse
def orgainization():
cars = ['bmw', 'audi', 'toyota', 'subaru']
#.sort()排序列表:reverse = False(默認)從小到大, reverse = True從大到小
#該排序是不可恢復的
cars.sort()
print(cars)
cars = ['bmw', 'audi', 'toyota', 'subaru']
#sorted() 臨時排序
c = sorted(cars)
print(c)
print(cars)
#反轉list .reverse()
cars.reverse()
print(cars)
#求表長度 len()
print(len(cars)) # 4
a = [[1, 2, 3], [4, 5, 6]]
print(len(a)) # 2
操作列表
遍歷列表
切片
列表解析
列表的深複製與淺複製
def orgainization():
cars = ['bmw', 'audi', 'toyota', 'subaru']
#.sort()排序列表:reverse = False(默認)從小到大, reverse = True從大到小
#該排序是不可恢復的
cars.sort()
print(cars)
cars = ['bmw', 'audi', 'toyota', 'subaru']
#sorted() 臨時排序
c = sorted(cars)
print(c)
print(cars)
#反轉list .reverse()
cars.reverse()
print(cars)
#求表長度 len()
print(len(cars)) # 4
a = [[1, 2, 3], [4, 5, 6]]
print(len(a)) # 2
def operate_list():
#遍歷鏈表
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
print(magician)
for i in range(len(magicians)):
print(magicians[i])
#.range(start, end, step)
for i in range(1, 5): #[1, 2, 3, 4]
print(i)
#指定range的步長
number = list(range(2, 10, 2)) #[2, 4, 6, 8]
print(number)
print(min(number))
print(max(number))
print(sum(number))
#列表解析
squares = [value**2 for value in range(1, 11)]
print(squares) #[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
#二維列表的第二列
a = [[1, 2, 3], [4, 5, 6]]
b = [x[1] for x in a]
print(b) # 2, 5]
#轉置a
b = []
for i in range(len(a[0])):
tmp = [x[i] for x in a]
b.append(tmp)
print(b) # [[1, 4], [2, 5], [3, 6]]
#切片 (不包含最後一個)
players = ['charles', 'martina', 'michael', 'florence', 'eli']
print(players[0:3]) #['charles', 'martina', 'michael']
print(players[:4]) #沒有指定起始位置,將從第一個開始 ['charles', 'martina', 'michael', 'florence']
print(players[-3:]) #輸出最後三個 ['michael', 'florence', 'eli']
print(players[-1: 0: -1]) #['eli', 'florence', 'michael', 'martina']
print(players[-1: 2: -1]) #['eli', 'florence']
#二維列表: 需要把每一行看做是一個元素
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
print(a[:2]) #[[1, 2, 3], [4, 5, 6]]
#深複製與淺複製
a = [1, 2, 3]
b = a; #b和a同時指向同一片內存,b相當於a的別名
b.append(4)
print(a) #[1, 2, 3, 4]
print(b) #[1, 2, 3, 4]
a = [1, 2, 3]
b = a[:] #把a的一份拷貝給b
b.append(4)
print(a) #[1, 2, 3]
print(b) #[1, 2, 3, 4]
#元組 不可變的列表
a = (1, 2, "a", "b") #使用圓括號定義元組
print(a) #(1, 2, 'a', 'b')