Python列表list詳解篇(七)

介紹:

列表是最常用的python數據類型,它可以作爲一個方括號內的逗號用分隔值出現。

列表的數據項不需要具有相同的類型。

創建一個列表,只要逗號分隔的不同數據項用方括號括起來即可。

name=[‘’beijing,shenzhen,nanjing]

 

訪問列表的值:(列表的下標是從0開始計算第一位的,-1從倒數第一位計算

list_names = ['shenzhen','nanjing','beijing']
#list_num = ['11','22','33']

print(list_names[0])
print(list_names[2])
print(list_names[-1])
print(list_names[-2])
print(list_names[:2]) #這裏是指打印第一位到第三位(第三位不算此列)

print(list_names[-2:-1]) #從左向右數倒1不算,所以打印倒數第二個

運行結果:

shenzhen

beijing

beijing

nanjing

['shenzhen', 'nanjing']

['nanjing']

 

注意:

1.列表的下標是從0開始計算(0相當於第一位)

2.-1表示倒數第一位

3.列表中的下標是從左向右計數(讀取)

 

切片:截取多個元素

list_names = ['ShenZhen','NanJing','BeiJing','YueYang','ChangSha','GuangZhou','ShaXian']
#list_num = ['11','22','33']
print(list_names[1:4]) #去下標1-4,不包括4
print(list_names[1:-1])#截取下標1~-1不包括-1
print(list_names[1:])#想獲取到最後一個只能這麼寫
print(list_names[0:4])
print(list_names[:4]) #與[0:4]效果等同,所以可以省略0
print(list_names[0::2])#後面的2是代表每隔一個元素就獲取一個。2是可以變的。如果寫成[0::1]效果等同於[:]d打印全部元素
print(list_names[::2]) #效果等同於[0::2]

運行結果:

['NanJing', 'BeiJing', 'YueYang']

['NanJing', 'BeiJing', 'YueYang', 'ChangSha', 'GuangZhou']

['NanJing', 'BeiJing', 'YueYang', 'ChangSha', 'GuangZhou', 'ShaXian']

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang']

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang']

['ShenZhen', 'BeiJing', 'ChangSha', 'ShaXian']

['ShenZhen', 'BeiJing', 'ChangSha', 'ShaXian']

 

注意:你還以繼續探索,多練就能熟練掌握。

 

追加:(默認追加到list最後一位)

list_names = ['ShenZhen','NanJing','BeiJing','YueYang','ChangSha','GuangZhou','ShaXian']

list_names.append('Welcome')#默認追加到最後面
print(list_names)

運行結果:

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang', 'ChangSha', 'GuangZhou', 'ShaXian', 'Welcome']

 

插入:insert()

list_names = ['1','NanJing','a','BB','中文','@','>','a']
list_names.insert(2,'ShenZhen')
print(list_names)

運行結果:

['1', 'NanJing', 'ShenZhen', 'a', 'BB', '中文', '@', '>', 'a']

 

修改:

list_names = ['1','NanJing','a','BB','中文','@','>','a']

list_names[1]='ShenZhen'
print(list_names)

運行結果:

['1', 'ShenZhen', 'a', 'BB', '中文', '@', '>', 'a']

 

統計/拷貝/清除:count()()&clear()

list_names = ['ShenZhen','NanJing','BeiJing','YueYang','ShenZhen','ChangSha','ShenZhen','GuangZhou','ShaXian']
print(list_names.count('ShenZhen')) #.count統計某個元素個數
list_copy=list_names.copy()
print(list_copy) #把list_names列表內容拷貝給了list_copy.
list_names.clear()
print(list_names) #清空當前列表內的元素

運行結果:

3

['ShenZhen', 'NanJing', 'BeiJing', 'YueYang', 'ShenZhen', 'ChangSha', 'ShenZhen', 'GuangZhou', 'ShaXian']

[]

 

刪除番外篇
list_del=['11','22','33','44','55','66','77','88','99']
del list_del[2:5]#刪除三到五
print(list_del)

運行結果:

['11', '22', '66', '77', '88', '99']

 

拷貝番外篇:

1、copy模塊

import copy  #運用模塊
list_copy=['11','22','33','44',['Shenzhen',['11','22'],'Guangzhou','Changsha'],'55','66']
print(list_copy)
list_deep=copy.deepcopy(list_copy) #深copy(看下面註解)
list2=copy.copy(list_copy) #淺copy(看下面註解)
list_copy[4][1][0]='aa'
list_copy[2]='cc'
print(list_copy)
print(list_deep)
print(list2)

運行結果:

['11', '22', '33', '44', ['Shenzhen', ['11', '22'], 'Guangzhou', 'Changsha'], '55', '66'] #原始數據

['11', '22', 'cc', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66']

['11', '22', '33', '44', ['Shenzhen', ['11', '22'], 'Guangzhou', 'Changsha'], '55', '66'] #deepcopy結果

['11', '22', '33', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66'] #copy結果

 

2、copy()
list_copy=['11','22','33','44',['Shenzhen',['11','22'],'Guangzhou','Changsha'],'55','66']
list1=list_copy.copy()
print(list1)
list_copy[4][1][0]='aa'
list_copy[2]='cc'
print(list_copy)
print(list1)

運行結果:

['11', '22', '33', '44', ['Shenzhen', ['11', '22'], 'Guangzhou', 'Changsha'], '55', '66']

['11', '22', 'cc', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66']

['11', '22', '33', '44', ['Shenzhen', ['aa', '22'], 'Guangzhou', 'Changsha'], '55', '66']

 

注:

copy與淺copy

共同點:不會因爲列表的父層變動而變動

不同點:子列表修改時,淺copy會跟隨變動而變動,而深copy不會變動。

以上是深copy與淺copy的整理,然後發現目前而言並沒有什麼卵用啊

 

合併列表:extend()

list_names = ['ShenZhen','NanJing',['11','22','33'],'YueYang','ChangSha','GuangZhou','ShaXian']
list_extend=['aa','bb']
list_names.extend(list_extend)
print(list_names)

運行結果:

['ShenZhen', 'NanJing', ['11', '22', '33'], 'YueYang', 'ChangSha', 'GuangZhou', 'ShaXian', 'aa', 'bb']

 

反轉&排序:reverse()&sort()

list_names = ['1','NanJing','a','BB','中文','@','>']
list_names.reverse()
print(list_names)
list_names.sort()#排序,數字>特殊字符>大寫字母>小寫字母>中文
print(list_names)

執行結果:

['>', '@', '中文', 'BB', 'a', 'NanJing', '1']

['1', '>', '@', 'BB', 'NanJing', 'a', '中文']

 

獲取下標:index()

list_names = ['1','NanJing','a','BB','中文','@','>','a']
print(list_names.index('a'))#只返回找到的第一個下標

執行結果:

2

 

知識小結:

1.pop()函數(列表使用方法)

語法:
list.pop(obj=list[-1])
參數:
obj:可選參數,要移除列表元素的對象
返回值:
方法返回從列表中被移除的元素對象。
實例:
以下展示pop()函數的用法

list_del=['11','22','33','44','55','66','77','88','99']
print(list_del.pop(3))
print(list_del.pop()) #用於移除列表中的一個元素,並返還該元素的值。這裏小括號不填默認是最後一個

運行結果:

44

99

 

2.remove()函數(列表使用方法)

用於移除列表中某個值的第一個匹配項
語法:
list.remove(obj)
參數:
obj:列表中要移除的對象
返回值:
該方法沒有返回值,但是會移除兩種中的某個值的第一個匹配項。
實例:
list_del=['11','22','33','44','55','66','77','88','99']
list_del.remove('11') #刪除指定元素
print(list_del)
list_del.remove('99')
print(list_del)

運行結果:

['22', '33', '44', '55', '66', '77', '88', '99']

['22', '33', '44', '55', '66', '77', '88']

 

注:

更多的字符串講解,請關注後續的Python字符串的常用操作篇

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章