我不久前学会了如何移动数组中的对象,通常是数字。 现在我将它附加到我的代码片段中,该代码片段应该在数组或列表中生成随机对象。
问题:如何修改第二部分,以便我可以使用第一部分?
这是编程中最令人困惑的部分。我知道这是一个愚蠢的问题,但我还在学习,我不是很好,但我真的想变得更好。
def randomArray(n_Elementi, my_vector):
for i in range(0, n_Elementi):
newElement=random.randint(1,500)
my_Vector.append(newElement)
return
def shift(seq, n):
newElement = []
for i in range(len(seq)):
newElement.append(seq[(i-n) % len(seq)])
return newElement
randomArray(n_Elementi, my_vector)
shift (newElement)
答案 0 :(得分:0)
有一些缩进问题,资本不匹配,但整体上你的代码有效:
import random
def randomArray(n_Elementi, my_Vector):
for i in range(0, n_Elementi):
newElement=random.randint(1,500)
my_Vector.append(newElement)
return
def shift(seq, n):
newElement = []
for i in range(len(seq)):
newElement.append(seq[(i-n) % len(seq)])
return newElement
n_Elementi = 10
my_vector=[]
randomArray(n_Elementi, my_vector)
print my_vector
print shift (my_vector, 3)
但是,这可以大大简化。这是一种使用numpy的方法(Numeric Python,它就像python的MAtlab)
import random
import numpy as np
#rand creates array between 0,1. multiple by 500 and recast to int to get the range you want
def randomArray(n_Elementi):
return np.array(np.random.rand(n_Elementi)*500,dtype=int)
#seq[-n:] takes the elements n from the end to the end [-n:]. This is called splicing. similarly [:-n] ...
def npshift(seq, n):
return np.concatenate((seq[-n:], seq[:-n]))
n_Elementi = 10
my_vector=randomArray(n_Elementi)
print my_vector
print shift (my_vector, 3)