亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

利用倒序切片對 1 - 100 的數列取出:* 最后10個5的倍數。print L[-46:0:5]為什么錯誤

利用倒序切片對 1 - 100 的數列取出:

* 最后10個5的倍數。

print L[-46:0:5]


錯在哪?


正在回答

6 回答

倒敘切片[-x:-y],y取得最小值是1,不能是0,正序的時候首位是0.

如果按照你寫的[-46:0:5](假設是對的),你可以算一下,你-46位置的數就不是55而是54.


0 回復 有任何疑惑可以回復我~
#1

謝軼鳴 提問者

1.總結下,列表的排序要順序進行,即【0:5】,【-50:-36】對應的字符串在列表中都是從前往后。 2.[-46:0:5](假設是對的),0位置對應1,-1位置對應100,列表對應-46位置開始(包括-46位的數),0位置截止(不包括0位的數)實際以-1位的數即100結尾###錯誤思路。-46位置的數是55
2018-07-19 回復 有任何疑惑可以回復我~
#2

謝軼鳴 提問者

非常感謝!你令我明白錯在何處
2018-07-19 回復 有任何疑惑可以回復我~

我試了一下,[-46:99:5]這樣寫最后一個數“100”取不到;

[-46:100:5]中間的數等于大于100都可以取到。

雖然倒敘切片倒數第2個位置的下標是-1,,但是倒數第一位置的下標不能是0,容易和正序情況下第一個位置的下標混淆。

以上是我自己試出來的,是自己的理解。僅供參考。有確定的正確理解麻煩告知一下,互相學習。

0 回復 有任何疑惑可以回復我~
#1

早啊六點半

補充一下,因為切片[x:y]中 y 這個位置的數據不會取到,所以倒敘切片想要取數據時 y 的下標數值一定要大于取到最后一個數值的下標數。
2018-07-17 回復 有任何疑惑可以回復我~

我回答錯了,抱歉。

0 回復 有任何疑惑可以回復我~

最中間的數字是你的程序執行到哪停止,比如最簡單的L=range(1,2,3,4,5,);print L[0:3]?表示從下標為0開始到下標為3,但不包含下標為3對應的數字。也就是數字1開始,取前三位數字,即:1、2、3。注意是下標!??!

0 回復 有任何疑惑可以回復我~

樓上言外之意是你從46開始錯了??
應該是80開始第一個

0 回復 有任何疑惑可以回復我~

print L[-46:100:5]你是要從倒數46到100

0 回復 有任何疑惑可以回復我~

舉報

0/150
提交
取消
初識Python
  • 參與學習       758382    人
  • 解答問題       8967    個

學python入門視頻教程,讓你快速入門并能編寫簡單的Python程序

進入課程

利用倒序切片對 1 - 100 的數列取出:* 最后10個5的倍數。print L[-46:0:5]為什么錯誤

我要回答 關注問題
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號