python - 根据特定顺序重新排序列表
问题描述
我想重新排序长度为 n 的列表,其中 n 可以是 5 到 20 之间的任何整数。
示例列表 = [1,2,3,4,5,6]
对于我生成的每个列表,我想将最后一个元素 [-2] 移动到列表 [0] 的开头,以便最终顺序变为:
新列表 = [5,1,2,3,4,6]
我努力了:
myorder =[1,2,3,4,5,6]
new_order = [(myorder[-2]), [i for i in myorder[:-2]], (myorder[-1])]
但这给了我一个列表中的列表:
[5, [1, 2, 3, 4], 6]
有没有一种简单的方法来实现列表理解?
解决方案
你可以试试这个:
new_order = [myorder[-2]] + [i for i in myorder[:-2]] + [myorder[-1]]
或者,稍微简化一下,
new_order = [myorder[-2]] + myorder[:-2] + [myorder[-1]]
推荐阅读
- linux - 无法在 ubuntu 20.04 上使用 qt-creator 运行应用程序
- visual-studio-code - VSCode js文件中的GraphQL语法高亮
- javascript - 在 React 中自动填充字段时如何手动聚焦事件?
- angular - Yeoman 生成器的 Office 插件 Angular 应用程序:组件必须具有模板或 templateUrl [使用 Webpack],即使它已声明
- python - 如何计算法语字符?
- sql-server - 使用 SSIS 从外部系统将深层数据结构传递给 ABAP SOAP 提供程序
- javascript - 管理表中实例过多的类Django
- amazon-web-services - AWS Cloudformation 资源之间的循环依赖
- python - 当每个函数立即终止时,为什么这里会出现 RecussionError?
- reactjs - 表单值未在上下文 api React 中更新