我對 python 中 Range 函數的理解是:范圍(起點、終點、索引數量)當“索引數量”為負數時,您基本上是在倒退,從末端到前面。我的問題是:反向時,位置 -end point-的值是否不會被評估?例如,如果我想反轉一個字符串“a,b,c”(我知道你可以只做 string[::-1],但這不是重點)string = 'a,b,c'strlist = list(string.split(","))empty_list = []for i in range((len(strlist)-1),-1,-1): print(strlist[i])#this gets me "cba"但是,當我在 for 循環中將端點從“-1”更改為“0”時,只會打印“cb”:string = 'a,b,c'strlist = list(string.split(","))empty_list = []for i in range((len(strlist)-1),0,-1): print(strlist[i])#this only gets me "cb"謝謝你的時間 :)
1 回答

HUX布斯
TA貢獻1876條經驗 獲得超6個贊
第一個示例中發生的情況是:
for i in range((len(strlist)-1),-1,-1):
print(strlist[i])
len(strlst) - 1= 2,因此當您將其用作 for 循環的開始索引時,這顯然是最后一個字母,因為它的索引為0, 1, 2. 這將返回所需的結果c, b, a。
當你有-1你的終點時,它將在從迭代器中減去 3 次2, 1, 0后結束(,當它到達時結束-1。)
for i in range((len(strlist)-1),0,-1):
print(strlist[i])
每當您0作為終點輸入時,它將停在0列表的位置或第一項。那將返回c, b而不是c, b, a. 希望這可以幫助。
添加回答
舉報
0/150
提交
取消