声明数组后,直到特定索引为止的数组元素都会被旋转,使得所需索引之前的第一个元素被放置在最后一个数组中的最后一个元素旁边。让我们通过输入输出场景来讨论这个问题。
输入输出场景
考虑一个数组 arr = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ]。
我们可以清楚地说,初始数组由 10 个元素组成,最后一个元素的索引为 9。
假设数组旋转了两个元素。
在本例中,前两个元素放置在最后一个元素“ 10 ”之后。
首先,元素“1”将被放置在10之后,放置元素“1”之后,下一个元素“2”将被放置在1旁边。
因此,结果数组将为 arr = [ 3, 4, 5, 6, 7, 8, 9, 10, 1, 2 ]。
示例
在此示例中,我们将讨论将数组的某些元素(一次全部)旋转一定次数的过程。构建程序必须遵循的步骤如下:
借助变量“ i ”和循环,迭代数组的元素(直到等于旋转次数的索引)并将元素逐个附加到“ temp ”中数组。
现在,将数组“ arr ”合并到数组“ temp ”并将值存储到数组“ arr ”中。
(注意该方法的参数必须由数组、数组的最大大小和用户要求的旋转次数组成)
def rotate_elements(arr, max, no_of_elements): temp = [] i = 0 while (i < no_of_elements): temp.append(arr[i]) i += 1 i = 0 while (no_of_elements < max): arr[i] = arr[no_of_elements] i = i + 1 no_of_elements = no_of_elements + 1 arr[:] = arr[: i] + temp return arr arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print("The array before rotation is: ", end =' ') print(arr) print("The array after rotation is: ", end=' ') max_size = len(arr) print(rotate_elements(arr, max_size, 2))
输出
上述程序的输出如下 -
The array before rotation is: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] The array after rotation is: [3, 4, 5, 6, 7, 8, 9, 10, 1, 2]
示例
在这个例子中,我们将讨论将数组中的某些元素(一个接一个)旋转一定次数的过程。构建程序必须遵循的步骤如下 -
def rotate_elements(arr, no_of_elements, max): for i in range(no_of_elements): rotate_one_by_one(arr, max) def rotate_one_by_one(arr, max): temp = arr[0] for i in range(max-1): arr[i] = arr[i+1] arr[max-1] = temp arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] print("The array before rotation: ") print(arr) rotate_elements(arr, 2, 10) print("The array after rotation: ") print(arr)
输出
上述程序的输出如下 -
The array before rotation: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] The array after rotation: [3, 4, 5, 6, 7, 8, 9, 10, 1, 2]
结论
我们可以清楚地观察到上面讨论的两个程序产生的输出完全相等。程序之间的唯一区别是程序主体内遵循的过程和使用的方法。在第一个程序中,在单个方法中,使用外部数组一起旋转元素。在第二个程序中,通过调用一个方法,使用两种不同的方法来依次旋转元素。这样就可以对数组的元素进行旋转。
以上就是Python程序旋转数组元素的详细内容,更多请关注编程之家其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。