【python_按照列表中的一维列表第二项从大到小的顺序排序,最后还是以百分号的形式返回】

按照列表中的一维列表第二项从大到小的顺序排序,最后还是以百分号的形式返回。

portfolio = [
    ['现金', '16.33%', '4.21%'],
    ['股票', '83.48%', '-0.44%'],
    ['债券', '- -', '- -'],
    ['基金', '- -', '- -'],
    ['其它', '0.19%', '-2.22%']
]

# 创建一个副本用于排序
portfolio_copy = [item[:] for item in portfolio]

# 将"- -"替换为0
for item in portfolio_copy:
    if item[1] == '- -':
        item[1] = 0
    else:
        item[1] = float(item[1].strip('%')) / 100.0  # 转换为小数形式

# 排序
portfolio_sorted = sorted(portfolio_copy, key=lambda x: x[1] if x[1] != 0 else float('-inf'), reverse=True)

# 将排序后的数值转换回百分比形式
for item in portfolio_sorted:
    if item[1] == 0:
        item[1] = '- -'
    else:
        item[1] = f'{item[1] * 100:.2f}%'  # 转换回带有百分号的字符串

print(portfolio_sorted)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值