初學者python筆記(列表)

本篇是關於可迭代對象中的列表一些相關盲點的記錄。
可迭代對象簡單描述:可以被for循環執行的對象(字符串,列表,元組,字典…)

  1. input()方法接收的其實只是字符串
    a = input(“請輸入:”) #輸入的是一個字符串類型,
    b = int(input(“請輸入:”)) #將輸入的函數轉化爲數字類型
value = "5+9"  #是一個字符串
v1,v2 = value.split('+')  #將'+'作爲分隔符,前半部分賦值給v1,後半部分賦值給v2
v1 = int(v1)
v2 = int(v2)
v = v1+v2  #int()後就可以做運算了
print(v)

因爲v1和v2都被轉化成數字型了,所有v結果自然是:14

  1. 列表(list類)(特徵:中括號,可修改),取值方法
li = [1,12,9,"age",["串串香",["19",10],"今麥郎"],"alex",True]  #通過list類創建的一個對象li
print(li)  #列表可以作爲一個整體打印出來
print(li[2])  #通過索引2(即下標,從0開始)來取元素9
#通過切片取3到5的元素,取出的結果仍然是個列表,範圍是大於等於3,小於5,所以只有兩個元素
print(li[3:5])  
#也支持for和while循環取值,即一個一個全部輸出
for item in li:
	print(item)

結果是:
[1, 12, 9, ‘age’, [‘串串香’, [‘19’, 10], ‘今麥郎’], ‘alex’, True]
9
[‘age’, [‘串串香’, [‘19’, 10], ‘今麥郎’]]
1
12
9
age
[‘串串香’, [‘19’, 10], ‘今麥郎’]
alex
True

  1. 列表可以修改
li = [1,12,9,"age",["串串香",["19",10],"今麥郎"],"alex",True]
li[1] = [11,22,33,44]  #通過下標修改
li[1:3] = [120,90]  #通過切片修改
print(li)
#刪除某下標爲1的元素,即刪除12:
del li[1]
print(li)

結果是:
[1, 120, 90, ‘age’, [‘串串香’, [‘19’, 10], ‘今麥郎’], ‘alex’, True]
[1, 90, ‘age’, [‘串串香’, [‘19’, 10], ‘今麥郎’], ‘alex’, True]

  1. 列表類似於C語言中的數組,並且可以多維
li = [1,12,9,"age",["是正文",["19",10],"龐麥郎"],"alex",True]
v = li[4][1][0][1]  #類似四維數組
print(v)

答案是:9

  1. 字符串轉列表時,會把每一個元素當成列表中的元素
s = "ajfskgahgkashgjhufywuyrlioqgfnjd"
new_li = list(s)
print(new_li)

結果是:
[‘a’, ‘j’, ‘f’, ‘s’, ‘k’, ‘g’, ‘a’, ‘h’, ‘g’, ‘k’, ‘a’, ‘s’, ‘h’, ‘g’, ‘j’, ‘h’, ‘u’, ‘f’, ‘y’, ‘w’, ‘u’, ‘y’, ‘r’, ‘l’, ‘i’, ‘o’, ‘q’, ‘g’, ‘f’, ‘n’, ‘j’, ‘d’]

  1. 將列表拼接成一個字符串
li = ["123","alex"]
v = "".join(li)
print(v)

結果是:123alex

  1. **append()方法與extend()**方法
    一個是將傳入的數據當一個整體加入到列表中,一個是將傳入的對象當成多個對象加入到列表中
li = [11,22,33,44]
li.append(5)  #在li的後面追加一個5
li.append([66,77,"age"])  #也可以列表,元組或字典
print(li)
li.clear()  #清空列表
li.extend([66,77,"age"])
li.extend("不得了")  #則會將"不得了"分開成3個元素加入到列表中
print(li)

結果是:
[11, 22, 33, 44, 5, [66, 77, ‘age’]]
[66, 77, ‘age’, ‘不’, ‘得’, ‘了’]
Ps:不過在python3中,想要加入多個元素好像只能弄成列表,元組或者字典,ppend()和extend()不能直接傳入多個值

  1. 拷貝與計算次數
li = ["alex",True,43,22,54,"age",22]
v = li.copy()  #拷貝一份到v
print(v)
v2 = li.count(22)  #計算某元素出現的次數
print(v2)

結果是:
[‘alex’, True, 43, 22, 54, ‘age’, 22]
2

  1. **index()索引與insert()**插入
li = [11,22,33,22,44]
v = li.index(22)  #從前往後找,第一個與22匹配的位置
print(v)  
li.insert(0,99)   #在指定位置0插入元素99,即整個列表的前端
print(li)

結果是:
1
[99, 11, 22, 33, 22, 44]

  1. 刪除之pop()remove()
    pop刪除爲某個值並獲取刪除的值到某個變量(指定索引,默認爲最後一個)
    remove刪除爲從左邊開始數刪除遇到的第一個指定元素,返回值是None
li = [11,22,33,22,44]
v = li.pop()  
print(v)
li.remove(22)
print(li)
v1 = li.remove(22)
print(v1)

結果是:
44
[11, 33, 22]
None

  1. 列表的翻轉排序替換
    列表其實沒有replace()這個方法,如果需要替換的話,必須先轉換成字符串纔可以實現replace()
li_1 = [11,44,22,33,22]
li_1.reverse()  #翻轉列表中的元素
print(li_1)
li_1.sort()  #將列表元素排序,默認從小到大排
print(li_1)
li_1.sort(reverse=True)  #從大到小排
print(li_1)

li_2 = [55,22,00,'name?','age?',520]
st = str(li_2)  #用str()將列表轉換成字符串類型
v = st.replace("name?","alex")  #用'what?'替換元素'alex'
print(v)

結果是:
[22, 33, 22, 44, 11]
[11, 22, 22, 33, 44]
[44, 33, 22, 22, 11]
[55, 22, 0, ‘alex’, ‘age?’, 520]
Ps:其實這樣的替換還不夠好,它只能替換一個元素,但我們可以這樣:

li=[5,'有','幸',1,'生','you','你']
dic={5:"我",1:"一","you":"有"}  #字典+鍵值對
li=[dic[i] if i in dic else i for i in li]
print(li)

結果是:
[‘我’, ‘有’, ‘幸’, ‘一’, ‘生’, ‘有’, ‘你’]
這裏是利用了鍵值對來替換多個元素,這種方法真的非常好用,
第三行代碼如果實在不理解,就直接拿來用也行,這是我自己做的簡單解釋:

#i是dic字典中的key(鍵),即 5,1,'you',dic[i]則是字典中的value(值)
li=[dic[i] if i in dic
            else i for i in li]
#如果key是列表裏的元素,就將dic[i]放進去,即鍵值對中的值
#否則就遍歷另外的key,再看是否滿足條件
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章