python - 如何在 Python 中对这个数组进行排序?
问题描述
我有这个数组:
[14, 'S', 12, 'D', 8, 'S', 9, 'S', 10, 'D']
我想按降序(数字)对其进行排序,但同时将数字与以下字母保持在一起。所以结果应该是这样的:
[14, 'S', 12, 'D', 10, 'D', 9, 'S', 8, 'S']
我怎样才能做到这一点?
我试图这样做(five_cards_num 是数组的名称):
for j in range(4):
max = five_cards_num[j]
max_color = five_cards_num[j+1]
for i in range(j, 5):
if (five_cards_num[2*i] > max):
max = five_cards_num[2*i]
max_color = five_cards_num[2*i+1]
five_cards_num[2*i] = five_cards_num[j]
five_cards_num[2*i+1] = five_cards_num[j+1]
five_cards_num[j] = max
five_cards_num[j+1] = max_color
但我得到错误:
TypeError:“int”和“str”的实例之间不支持“>”
先感谢您。
解决方案
我更喜欢这个简单的解决方案:
list(sum(sorted(zip(x[::2], x[1::2]), reverse=True), ()))
输出:
[14, 'S', 12, 'D', 10, 'D', 9, 'S', 8, 'S']
推荐阅读
- javascript - 默认选择第一个单选按钮
- python - 使用`.loc`访问多索引数据框时如何保留列顺序?
- c# - 错误:UrlHelper.Link 不得返回 null
- c# - 具有任何参数的函数的计时器
- python - 使用 Numpy 有效地求和复杂的矩阵乘积
- c# - ASP.Net Core 2.2 App 中身份控制器的扩展方法
- javascript - Webpack 4,Babel 转译为 ES5 和 uglifyjs-webpack-plugin 的问题
- asp.net-mvc - .NET Core MVC 项目中的 Autofac 属性注入
- c# - 如何将一个接口的多个实现注入到一个实现中
- python - 如何更改数组中元素的索引