python基礎語法總結(四)-- list列表
阿新 • • 發佈:2018-12-22
python基礎語法總結(一)-- python型別轉換函式+檔案讀寫
目錄
一. 列表List
list是python中最常用的資料格式,list以[item1,item2,...]定義,以list[i]讀取。list列表中的元素可變
'''
list列表,其中的元素可變
'''
l1 = [1,2,3,4,5,6] # 宣告一個list列表,並賦值
二. 基本操作
1. 讀取get
# 讀取
print(l1[0]) # 得到列表中的某一項,語法list[i],索引以0開始
2. 修改
# 修改
l1[2] = 8 # 修改第三項,由3改為8
print(l1[2]) # 列印結果為8
3. 新增(list結尾)
# 新增(在list後附加)
l1.append(9) # 在list後新增一項:9
print(l1) # [1, 2, 8, 4, 5, 6, 9],可以看到添加了一項
4. 插入(任意位置)
# 插入(在list中任何位置新增新元素) l1.insert(1,23) # 在第二項處新增一項 23,原已有的元素都向右移一個位置 print(l1) # [1, 23, 2, 8, 4, 5, 6, 9]
5. 刪除
# 刪除
del l1[2] # 刪除第三個元素 2
print(l1) # [1, 23, 8, 4, 5, 6, 9], 原先的第三個元素"2"被刪除
# 刪除(同時得到此元素)
item = l1.pop(4) #
print(l1) # [1, 23, 8, 4, 6, 9]
print(item) # 已刪除的元素“5”儲存在item裡
# 刪除(根據值)
l1.remove(23) # 刪除已有項“23”,注意只刪除第一個匹配項,如果其中有多個“23”,也只刪除第一個
print(l1) # [1, 8, 4, 6, 9]
6. 清空
# 清空
l1.clear()
7. 陣列越界避免
# 陣列越界避免
l1[7] # 因為l2長度為7 ,所以取第八項時,會報陣列越界
l1[-1] # 為避免陣列遍歷或者從後向前讀取時易出現的越界問題,python支援用-號從右向左讀
# 從-1開始,依次向左偏移讀取,本例:'a'
三. 複雜方法
1. 列表長度
# 列表長度
len(l1) # 得到列表的總長度,本例:6
2. 列表反向
# 列表反向
l2.reverse() # 列表反向,修改原list
print(l2) # ['f', 'g', 'd', 'b', 'c', 'e', 'a']
3. 遍歷
# 遍歷整個列表
for item in l2:
print(item)
4. 排序
- 永久排序sort()
- 臨時排序sorted()
# 永久性排序sort(), 原list順序會改變
l1.sort()
print(l1) # [1, 4, 6, 8, 9] 已排序,原l1發生改變
# 臨時排序sorted(), 返回排序好的新list,原list順序不變
l2 = ['a','e','c','b','d','g','f']
temp_list = sorted(l2)
print(temp_list) # 排序結果['a', 'b', 'c', 'd', 'e', 'f', 'g']
print(l2) # l2本身並沒有變化,還是['a', 'e', 'c', 'b', 'd', 'g', 'f']
temp_list_reverse = sorted(l2, reverse=True) # 反向排序
print(temp_list_reverse) #['g', 'f', 'e', 'd', 'c', 'b', 'a']
5. 建立數字列表
# 建立數值列表
l3 = list(range(1,5)) # l3: [1, 2, 3, 4]
l4 = list(range(2,15,3)) # 指定步長為3, l4:[2, 5, 8, 11, 14]
# 語法糖,建立1到4的平方的列表
squares = [value ** 2 for value in range(1,5)] # squares:[1, 4, 9, 16]
6. 建立列表副本
# 建立副本
duplicate_sq = squares[:] # 複製,真正的建立了副本,不同於duplicate_sq = squares簡單的引用
squares[2] = 1 # 修改第三項為1
print(squares) # [1, 4, 1, 16]
print(duplicate_sq) # [1, 4, 9, 16]
7. 判斷最大最小值
# 判斷最大、最小值
l1 = [1,2,3,5]
max(l1) #求最大值,本例:5
max(2,5,6,7) #本例:7
min(l1) #求最小值,本例:1