您好,登錄后才能下訂單哦!
這篇文章主要介紹了python切片中內存的注意事項是什么,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
1、由于 Python 列表的切片會在內存中創建新對象,因此需要注意的另一個重要函數是itertools.islice。
2、通常需要遍歷切片,而不僅僅是在內存中靜態創建它。islice非常適合這個。
一個警告,它不支持負的參數start,stop或者step,如果這是一個問題,您可能需要計算指標或反向迭代提前。
length = 100 last_nine_iter = itertools.islice(list(range(length)), length-9, None, 1) list_last_nine = list(last_nine_iter)
現在:
>>> list_last_nine [91, 92, 93, 94, 95, 96, 97, 98, 99]
列表切片制作副本的事實是列表本身的一個特征。如果您對 Pandas DataFrame 等高級對象進行切片,它可能會返回原始視圖,而不是副本。
內容擴展:
語法:
nuList[start:end:direction]
start -->起始下標(direction = 1時,默認是0;direction = -1時默認是-1)
start -->結束下標(direction = 1時,默認是len(nuList)-1;direction = -1時默認是-(len(nuList)-1))
direction --> 默認是1,切片方向從左往右;-1時,切片方向從右往左
1.只包含左邊的端數據,不包含右邊的端數據
print(nuList[1:3])
結果是:[1,2]
2.按照不同的方向返回元素
print(nuList[::])
結果是:[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
print(nuList[::-1])
結果是:[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
3.嚴格按照方向順序截取
print(nuList[3:1]) #從左往右,下標3開始切,但是無法找到下標1
print(nuList[-1:-3]) #從左往右,下標-1開始切,但是無法找到下標-3
print(nuList[-3:-1:-1]) #從右往左,下標-3開始切,但是無法找到下標-1
結果都為:[]
print(nuList[1:-1]) #從左往右,下標1開始切,能找到-1下標
結果:[1, 2, 3, 4, 5, 6, 7, 8]
print(nuList[-1:1:-1]) #從右往左,下標-1開始切,能找到1下標
結果:[9, 8, 7, 6, 5, 4, 3, 2]
感謝你能夠認真閱讀完這篇文章,希望小編分享的“python切片中內存的注意事項是什么”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關注億速云行業資訊頻道,更多相關知識等著你來學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。