python - 给定移动次数的python中的数组旋转
问题描述
给定一个长度为 n 且旋转 k 的数组来执行。我已经尝试过了,但出现错误
shifted = []
size , rotation = [int(size)for size in input().split()]
arr= [int(size) for size in input().split()]
for loop in range(len(arr)):
indx = (loop+rotation)%len(arr)
shifted[indx:indx] = arr[loop]
print(shifted)
我收到了这个错误:shifted[indx:indx] = arr[loop] TypeError: can only assign an iterable
解决方案
假设左旋转和输入:
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
k = 3
n = 10
如果您不需要就地执行此操作,则可以执行以下操作:
result = lst[k:] + lst[:k] # [3, 4, 5, 6, 7, 8, 9, 0, 1, 2]
deque
也是一种选择:
from collections import deque
lst = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
result = deque(lst)
result.rotate(-3) # Rotate 3 to the left
print(list(result))
推荐阅读
- json - 使用 json 文件在本地主机中创建 dynamo db 表
- cucumber-java - 获取 Cucumber 无法解析类型
- elasticsearch - 区分大小写的建议 - Elasticsearch Phrase Suggester
- flask-sqlalchemy - 在具有多个数据库的 SQL Alchemy 中,如何在应用程序中的任何位置记录数据库连接创建信息?
- c# - 如何获取包含调用当前方法的方法的类的名称?
- google-cloud-platform - 无法在我的浏览器上复制粘贴到 Google 计算引擎 sshed
- spring - 让 Implicit OAuth2.0 流经 springfox
- python - Python Open CV 在大图像的轮廓上叠加图像
- laravel-5.6 - LARAVEL_MethodNotAllowedHttpException
- python - 尝试使用 python-mysql-connector 建立与 Mysql 服务器的 SSL 连接时访问被拒绝