Python序列中元素的訪問方式(二)Python列表元素的訪問、切片與索引

 得到Python的各種序列後,接下里就要知曉如何訪問或取出序列中的數據。看着很簡單,但是隨着所學的序列越來越多後,比如字符串、列表、元組、字典、一維數組、多維數組、Series、DataFrame,漸漸的腦子就會混亂,所以打算梳理與一下。方便之後自己查找。

 

Python序列中元素的訪問方式(一)Python字符串元素的訪問、切片與索引

Python序列中元素的訪問方式(二)Python列表元素的訪問、切片與索引

Python序列中元素的訪問方式(三)Python.numpy數組元素的訪問、切片與索引

Python序列中元素的訪問方式(四)Python數組和列表切片的區別

 

 

列表的單個取值和切片操作和字符串一致(應該)。

一維列表

a_list=["Duan","Yi","Xuan","Chen","Ke","Han","Jia","Le"]
print(a_list)
#['Duan', 'Yi', 'Xuan', 'Chen', 'Ke', 'Han', 'Jia', 'Le']
print(len(a_list)) #8

#從0開始計數
print(a_list[0])  #Duan
#索引是左閉右開,包括起始,不包括結尾
print(a_list[0:3])  #['Duan', 'YI', 'Xuan']
#可以指定“間隔”
print(a_list[::2])  #['Duan', 'Xuan', 'Ke', 'Jia']
#可以逆序輸出
print(a_list[::-1])  #['Le', 'Jia', 'Han', 'Ke', 'Chen', 'Xuan', 'YI', 'Duan']

嵌套列表

列表裏面可以是各種數據類型,甚至是其他列表。

#嵌套列表的索性
date=[2011,2,9,9,54]
day=["sun","mon","tue","wed","thi","fri","sat"]
data=[date,day]
print(data) #[[2011, 2, 9, 9, 54], ['sun', 'mon', 'tue', 'wed', 'thi', 'fri', 'sat']]
print(data[1][3])  #wed  #第二塊的第四個

假設有這樣一個嵌套列表

a_list=[[1,2,3,4],
      [4,5,6,7],
      [7,8,9,10]]

如果將[1,2,3,4]視爲一維列表,那麼上述這個列表,可以視爲二維列表,在第一維上有三個元素,分別是[1,2,3,4],[4,5,6,7]和[7,8,9,10],在第二維上,每一維又有四個元素。那麼如果要訪問裏面的元素,就先訪問第一維,再訪問第二維,也可以只訪問第一維。

#比如說要訪問第二行的第二個元素
print(a_list[1][1]) #5
#訪問第一行
print(a_list[0]) #[1, 2, 3, 4]
#如果要訪問第二行和第三行
print(a_list[1:3])  #[[4, 5, 6, 7], [7, 8, 9, 10]]

如果要讀出每一行的中間兩個,也就是按“列”訪問,我並沒有找到像上述這種直接表示的方法(不知道別人能不能,反正我不會)。因爲print( a_list[ : : 1][ 1 : 3] )的結果是[[4, 5, 6, 7], [7, 8, 9, 10]] ,事實上a_list[ : : 1][ 1 : 3]的意思的是,[::1]先在第一維上取出所有元素:[[1, 2, 3, 4], [4, 5, 6, 7], [7, 8, 9, 10]],然後[1:3]又在裏面取出第二個和第三個,那就是[[4, 5, 6, 7], [7, 8, 9, 10]],那就只能藉助循環的方式了。

這個和後面的numpy有很大區別。

for a in a_list:
      print(a[1:3])
'''
[2, 3]
[5, 6]
[8, 9]
'''

暫時只想到這些,遇到新的再添加。如有錯誤,還請指出。

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