清單中的方法
# 清單方法
'''
1. append:在清單最後插入新的值
2. clear:用于清除清單的内容
3. copy:用于複制一個清單 //通過分片也是可以複制一個清單的
4. count:用于統計某個元素在清單中出現的次數
5. extend:用于在清單結尾插入另一個清單,也就是讓兩個清單首尾相接。
該方法改變的是被擴充的清單。 list1.extend(list2)//這一步是 把list2接到list1的後面 他改變的是list1的本身
比如list1長度為3 list2長度為4 那麼我們調用這個方法後 list1的長度 就變成了7 改變了list1的長度
,而我們之前講過的 清單的相加建立一個新的清單 和extend 這個方法 是本質的差別
6. index:用于從清單中找出某個值第一次出現的索引位置
7. insert:用于将值插入到清單中的指定位置 //這個方法可以取代append 因為可以在清單中的任意位置插入
8. pop:用于移除彈出清單中的元素(預設是最後一個元素),并傳回該元素的值
9. remove:用于移除清單中某個值的第一次比對項
10. reverse:用于将清單中的元素反向存放
11. sort:用于對清單進行排序,調用該方法會改變原來的清單
'''
from sqlalchemy.sql.expression import false
print("--------append方法---------")
numbers = [1,2,3,4,5]
numbers.append(20)
print(numbers) #[1, 2, 3, 4, 5, 20]
numbers.append("hello")
numbers.append([1,2,3])
print(numbers) #[1, 2, 3, 4, 5, 20, 'hello', [1, 2, 3]]
print("---------clear方法---------")
names = ["Bill", "Mary"]
print(names) #['Bill', 'Mary']
names.clear()
print(names) #[]
print("----------copy方法----------")
a = [1,2,3,4,5]
acopy = a
acopy1 = a[:] #通過分片複制清單
acopy2 = a.copy()
a[3] = "hello" #這一步的目的是 要改變 3這個位置上的數
print(acopy) #[1, 2, 3, 'hello', 5]
print(acopy1) #[1, 2, 3, 4, 5]
print(acopy2) #[1, 2, 3, 4, 5]
print("----------count方法-----------")
search = ["he", "new", "he", [1,2,3],"he", "world", "peter",[1,2,3]]
# 搜素“he”在search出現的次數
print(search.count("he")) # 3
print(search.count([1,2,3])) # 2
print(search.count(20)) # 如果沒有找到指定的清單元素,傳回0
print("------extend方法------")
a = [1,2,3]
b = [4,5,6]
a.extend(b)
print(a) # [1, 2, 3, 4, 5, 6]
a[2] =123
print(a) # [1, 2, 123, 4, 5, 6]
a = [1,2,3]
b = [4,5,6]
x = a
a = a + b
x[2] = 543
print(a) # [1, 2, 3, 4, 5, 6]
print(x) # [1, 2, 543]
print("------index方法------")
numbers = [5,3,6,8]
print(numbers.index(6)) # 2 6的位置上2
# print(numbers.index(10)) # 如果指定的值在清單中不存在,會抛出異常
print("-------insert方法-------")
numbers = [1,2,3,4,5]
#numbers.insert(3,"four") # [1, 2, 3, 'four', 4, 5]
#print(numbers)
# 使用分片指派完成同樣的效果
numbers[3:3] = ["four"] # 開始索引和結束索引相等 不代表任何的元數 隻是光标到達此位置 把這個位子代表4這個位子
print(numbers) # [1, 2, 3, 'four', 4, 5]
print("-------pop方法-------") # pop:用于移除彈出清單中的元素(預設是最後一個元素),并傳回該元素的值
numbers = [1,2,3]
print(numbers.pop()) # 預設不指定的話 就彈出 最後一個元數 3 結果為3
print(numbers.pop(1)) # 彈出第索引位子為1的元素 結果為2
print(numbers) # 我們彈出了2次 就剩下一個1 了 結果為 [1]
print("---------remove方法---------") # remove:用于移除清單中某個值的第一次比對項
words = ["he", "new", "he","yes"]
words.remove("he")
print(words) # 結果為 ['new', 'he', 'yes'] 隻移除第一個 出現的第一個
print("------reverse方法--------") # reverse:用于将清單中的元素反向存放
numbers = [1,2,3,4,5,6,7]
numbers.reverse() # [7, 6, 5, 4, 3, 2, 1] 倒序 如果執行2次 那麼就又正面傳回了
print(numbers)
print("--------sort方法-------") # sort:用于對清單進行排序,調用該方法會改變原來的清單
numbers = [4,3,1,7,4,83,2,-3]
numbers.sort()
print(numbers) # [-3, 1, 2, 3, 4, 4, 7, 83] 排序 是一種升序的排序 改變了原來的清單
# 要是不想改變原來的清單怎麼辦?
#方法1:使用分片或者copy的方法 将這個清單複制一份 然後在排序
numbers1 = [4,3,1,7,4,83,2,-3]
numbers2 = numbers[:] # 分片複制方法
numbers2.sort()
print(numbers1) # [4, 3, 1, 7, 4, 83, 2, -3]
print(numbers2) # [-3, 1, 2, 3, 4, 4, 7, 83]
numbers3 = numbers1.copy() # 用copy的方法 複制
print(numbers3) # [4, 3, 1, 7, 4, 83, 2, -3]
#方法2 我們不使用sort這個函數 因為他改變了原來的清單 我們使用 sorted函數 這個函數是傳回排好序的清單
# 可以對任意的序列進行排列 ,可以對字元串進行排列
x = [5,4,7,2]
y = sorted(x)
print(x) # [5, 4, 7, 2]
print(y) # [2, 4, 5, 7]
# 對字元串進行排序
print(sorted("www.baidu.com")) # ['.', '.', 'a', 'b', 'c', 'd', 'i', 'm', 'o', 'u', 'w', 'w', 'w']
# 利用askm值進行排序 從低到高
# 我們可以通過關鍵字 讓他降序排列
x = [4,6,2,8,44,56,22]
x.sort(reverse = True) # 關鍵字 reverse 為true 為降序 ;如果 為flase為升序 預設為升序
# reverse:用于将清單中的元素反向存放
print(x) # [56, 44, 22, 8, 6, 4, 2]
x.sort(reverse = False)
print(x) # [2, 4, 6, 8, 22, 44, 56]