数组元素前移后移 RUNOOB python练习题 68
生活随笔
收集整理的這篇文章主要介紹了
数组元素前移后移 RUNOOB python练习题 68
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用來(lái)練手的python練習(xí)題,原題鏈接: python練習(xí)實(shí)例68
題干: 有 n 個(gè)整數(shù),使其前面各數(shù)順序向后移 m 個(gè)位置,最后 m 個(gè)數(shù)變成最前面的 m 個(gè)數(shù)
代碼如下:
import numpy as np # 構(gòu)造一個(gè)儲(chǔ)存了n個(gè)整數(shù)的numpy數(shù)組 def numbers_input(n):a = np.zeros(n)for i in range(n):a[i] = int(input("輸入一個(gè)整數(shù):"))print(a)return a# 移動(dòng)各個(gè)對(duì)應(yīng)數(shù)字 def move_number(number_array, m):temp = np.zeros(m)result = np.copy(number_array)temp[:] = number_array[-m:]result[m:] = np.copy(number_array[:number_array.shape[0]-m])result[:m] = temp[:]return result測(cè)試及輸出結(jié)果如下:
這里我們又要注意在數(shù)組的復(fù)制,以及函數(shù)調(diào)用過(guò)程中的小問(wèn)題,可以參考前文 賦值語(yǔ)句及復(fù)制數(shù)組相關(guān)。當(dāng)我們使用一個(gè)全局?jǐn)?shù)組作為函數(shù)的參數(shù)時(shí),在函數(shù)內(nèi)部對(duì)數(shù)組的操作,也會(huì)對(duì)全局?jǐn)?shù)組本身造成改變。如果不想要改變一開始的全局?jǐn)?shù)組而使用返回值,那么就需要在函數(shù)內(nèi)部重新分配一塊新的內(nèi)存(使用np.zeros或者np.copy方法)。
相關(guān)測(cè)試代碼如下:
m = np.array([1,2,3,4]) def test(a):a[3] = 10return aresult = test(m) print("result :"+ str(result)) print("m :"+ str(m))輸出結(jié)果:
輸出結(jié)果:
總結(jié)
以上是生活随笔為你收集整理的数组元素前移后移 RUNOOB python练习题 68的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: RUNOOB python 67 数组的
- 下一篇: tf.reduce_sum()方法深度解