python按照特定规则划分数据

题目:

从input.txt文件中读入以下数据,文件中数据如下:
马克-扎克伯格 711亿 Facebook 美国
阿曼西奥-奥特加 702亿 Zara 西班牙
沃伦-巴菲特 875亿 伯克希尔-哈撒韦公司 美国
比尔-盖茨 1068亿 微软 美国
伯纳德-阿诺特 1060亿 LVMH 法国
……
史蒂夫-鲍尔默 532亿 微软 美国
马云 394亿 阿里巴巴集团 中国

要求按照财产从高到低排序后,仅输出姓名、财产金额、以及三种评价:TOP10%,MIDDLE,BOTTOM10%
其中排序在总人数前10%的【四舍五入,round(len(x)*0.1) 】评价为TOP10%;总人数后10%的【四舍五入,round(len(x)*0.1) 】评价为BOTTOM10%,其余评价为MIDDLE。

1.程序:

# encoding=utf8

with open('input.txt', 'r') as f:
    s = f.read()
lt = s.split('\n')
for i in range(len(lt)):
    lt[i] = lt[i].split(' ')
lt2 = []  # 姓名
lt3 = []  # 资产
for i in lt:
    lt2.append(i[0])
    lt3.append(i[1])
lt4 = []  # 存放'亿'前面的数字
for i in range(len(lt3)):
    lt4.append(int(lt3[i].replace('亿', '')))
# 冒泡排序,从高到低
for i in range(len(lt4)):
    for j in range(0, len(lt4) - i - 1):
        if lt4[j] < lt4[j + 1]:
            lt4[j], lt4[j + 1] = lt4[j + 1], lt4[j]
            lt2[j], lt2[j + 1] = lt2[j + 1], lt2[j]
str1 = ''  # 初始化要输出的信息
n = len(lt4)
count = round(n * 0.1)
lt5 = []
for i in range(n):
    if i < count:
        str1 += str(lt2[i]) + ':' + str(lt4[i]) + '亿:' + 'TOP10%\n'  # 资产占前10%
    if count <= i <= n - count - 1:
        str1 += str(lt2[i]) + ':' + str(lt4[i]) + '亿:' + 'MIDDLE\n'  # 资产中等的
    if i > n - count - 1:
        str1 += str(lt2[i]) + ':' + str(lt4[i]) + '亿:' + 'BOTTOM10%\n'  # 资产占后10%
print(str1)

2.运行结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值