【问题标题】:Python- Shifting the position of each object to left or right in a random ArrayPython-在随机数组中将每个对象的位置向左或向右移动
【发布时间】:2014-11-18 17:36:22
【问题描述】:

不久前我学会了如何移动数组中的对象,通常是数字。 现在我将它附加到我的一段代码中,该代码应该在数组或列表中生成随机对象。

问题:如何修改第二部分以使其与第一部分一起使用?

这是编程中最令人困惑的部分。我知道这是一个愚蠢的问题,但我还在学习,我不是很好,但我真的想变得更好。

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)

【问题讨论】:

  • 什么都没有。我在这个网站上学到了很多东西.. 但我很难把东西放在一起,我也在学校学习编码,但我发现在网上更容易。这就是为什么我实际上在这里问它的原因。
  • 我也发现了这种其他方式,newElement.rotate(-1) 但我的程序仍然给我一些错误
  • 另外,它们被称为列表。在 Python 中,“数组”一词一般指的是 NumPy 数组。
  • 哦,我明白了,谢谢,我的老师称它们为数组,向量..所以我按照他的话,但因为它是一个列表,我想我会称之为列表现在听起来更简单哈哈:)

标签: python arrays random shift


【解决方案1】:

有一些缩进问题,大写不匹配,但总的来说你的代码可以工作:

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)

【讨论】:

    猜你喜欢
    • 2012-02-19
    • 2012-11-26
    • 1970-01-01
    • 1970-01-01
    • 2013-02-14
    • 2013-08-01
    • 2014-05-08
    • 1970-01-01
    • 2019-04-06
    相关资源
    最近更新 更多