python - python - 如何在python列表中将更小的元素与更大的奇数元素交换?
问题描述
我有一个从 1 到 n 的元素列表, ( range(1, n + 1)
)
我应该如何将奇数更大的元素与偶数元素交换?
例如,如果我有一个包含元素[1,2,3]
的列表,则所需的输出将是[1,3,2]
因为 odd 3 大于 even 2 。
示例 2:
if list = [1,2,3,4,5]
所需的输出将是
[1,3,2,5,4]
这里 2 将与 3 交换,4 将与 5 交换,但不会与 3 交换,因为 3 小于 4。
解决方案
一个简单的 for 循环,用于修改列表:
l = list(range(1,10))
for i, n in enumerate(l):
if i % 2 != 0 and i < len(l) - 1:
l[i] = l[i+1]
l[i+1] = n
在每个奇数索引处,元素与其后继元素交换位置。
推荐阅读
- python - 对包含带有 SI 前缀的数字的字符串列表进行排序
- ios - 当半径等于高度时,UIBezierPath 拐角显示不正确
- python - 多目标变量回归
- r - 具有多个变量的分组小提琴图表
- python - 如何在bash for循环中运行具有多个参数的python脚本?
- python - Convert AM,PM to 24 in a nested list using python
- javascript - discord.js 检查没有叶子的用户邀请
- asp.net - 配置错误(执行此操作时出错)
- reactjs - 如何使用 react-routing 按 ID 返回页面?
- google-app-engine - 使用 App Engine (API) 和 Cloud Storage Bucket(前端)在 GCP 上托管 Node.js