python - 运行此循环时出现错误
问题描述
给你一个整数数组a
。通过按以下方式b
重新排列 的元素来生成一个新数组:a
b = [a[0], a[len(a)-1], a[1], a[len(a)-2, ...]
我的代码只循环一次,我只是从这里卡住了。我尝试过的如下
def alternatingSort(a):
length = len(a)
b = []
for i in range(length):
if i % 2:
b.append(a[length-i])
else:
b.append(a[i])
return b
如果我的输入是[1, 3, 5, 6, 4, 2]
,我的输出应该是[1,2,3,4,5,6]
But i get [1, 2, 5, 6, 4, 3]
。
解决方案
你的逻辑不正确。这是更改最少的工作解决方案:
def alternatingSort(a):
length = len(a)
b = []
for i in range(length):
if i % 2:
b.append(a[length - (i // 2) - 1]) # Updated.
else:
b.append(a[i // 2]) # Updated.
return b
a = [1, 3, 5, 6, 4, 2]
print(alternatingSort(a))
a = [1, 3 ,2]
print(alternatingSort(a))
推荐阅读
- sas - 在 SAS 中合并 Proc GLM 的输出文件
- javascript - JavaScript 意外错误消息(未捕获的 SyntaxError:预期表达式,得到 '}')
- flutter - Tailwindcss 颜色托盘在颤动中的模拟器上不显示相同的颜色
- azure-devops - 使用 Power Shell 脚本下载 DacPac
- python - SQLAlchemy ORM 多个多对多关系
- github - 在 vscode 中打开项目时,git 扩展从我的笔记本电脑中抓取文件
- html - 移动浏览器 - 网站中的哪个元元素是这个图标
- arrays - Spark:GroupBy和collect_list同时按另一列过滤
- python - 为什么 grpc.FutureTimeoutError 不是 grpc.RpcError 和 grpc.Call 的实例?
- ruby-on-rails - Sidekiq Worker 缓存未过期