python list倒序輸出中的一些問題

2021-08-15 07:07:17 字數 1302 閱讀 2714

我們可以使用python的切片操作來完成list的倒序操作,比如:

a=['a','b','c','d','e','f']

print(a[ : :-1])

可以得到如下結果:

['f', 'e', 'd', 'c', 'b', 'a']
下面來看看如下操作:

(1)

a=['a','b','c','d','e','f']

print(a[ 4: :-1])

結果:

['e', 'd', 'c', 'b', 'a']
(2)

a=['a','b','c','d','e','f']

print(a[ 4: 0:-1])

結果

['e', 'd', 'c', 'b']
(3)想在不省略第二個引數的情況下,把e之前的元素都輸出:

a=['a','b','c','d','e','f']

print(a[4: -1:-1])

結果卻是

這是什麼原因呢,

現在來講一下有關list切片時,步長為負時要注意的問題:

當我們使用list的三元組形式[a:b:c]進行切片時,系統遵行以下規則:

1.首先系統檢查c,預設值為+1。c的值決定是正序還是逆序

2.接著檢查a,當c為正值或者省略時,a的預設值為0;如果c的負值時,a的預設值是-1

3.最後檢查b,當c為正值或者預設值時,b的預設值是len;當c的值是負時,b的預設值是-(len+1)

所以我們再看看以下情況:

a[4: -1:-1]相當於由a[4]–a[-1-1]:相當於從第四個元素到第四個元素逆序輸出,所以為空值

a[ : -1:-1]相當於a[len-1:len-1:-1],所以輸出的也是空

如果想通過修改第二個引數來使得list中的第乙個元素被輸出出來,則第乙個元素可以表示為-(len+1),如:

eg1

a=['a','b','c','d','e','f']

print(a[-2:-7

:-1])

['e', 'd', 'c', 'b', 'a']
想通過a[5:b:-1] 的形式把前五個字元都輸出來好像是不可實現的,(b=-1輸出)

當我們使用切片的時候,如果ab引數都不省略的話,盡量避免ab符號不同

NSArray 倒序 輸出

今天因為自己一些知識的不了解,導致了開發時間的浪費,現在乙個需求記錄使用者曾使用的歷史 功能,單獨在documents建立了乙個資料夾存放使用者,後來想法是先遍歷資料夾下的內容,獲取乙個陣列來進行操作。但是輸出的nsarray很糾結,不是倒序排列的,於是乎,想用plist進行儲存,然後再輸出下,後來...

C 倒序輸出

定義好的陣列輸入。char ch1 10 abcde ch2 10 int i 0,j 0,n 0 n strlen ch1 for i n 1 i 0 i cout ch2 endl 從命令串列埠輸入 連續的 字串 或者 數字。有空格就不行 相當於兩個數或者兩個字串 include include...

分割片語倒序輸出

一點點的將印象筆記中整理的東西搬家到部落格 下面這個例子講的是按照片語順序反轉輸出,比如 輸入的句子為 how are you 經過反轉後為 you are how 以下為 示例 按單詞的字串反轉 string string 1 2 3 4 5 6 7 8 9 stackstack new stac...