我不久前学会了如何在数组中移动对象,通常是数字。现在我把它附加到我的代码段上,该代码应该在数组或列表中生成随机对象。
问题:如何修改第二部分,使其与第一部分一起使用?
这是编程中最令人困惑的部分。我知道这是一个愚蠢的问题,但我仍在学习,我不是很好,但我真的很想变得更好。
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)
有一些缩进问题,大写不匹配,但总的来说,你的代码是有效的:
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)