鱼C论坛

 找回密码
 立即注册
查看: 1757|回复: 12

[已解决]百分数如何比较取值

[复制链接]
发表于 2020-9-9 10:02:34 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
从字典中的的字典取值
比如字典[{姓名:张三,结果:35%,身高:170},{姓名:李四,结果:32%,身高:160},{姓名:王五,结果:28%,身高:180}]
从字典中去取出结果大于30%的人的身高值,组成一个列表结果【170,160】
如何去编写
求大神解决
谢谢
最佳答案
2020-9-9 10:16:51
lanyacp 发表于 2020-9-9 10:11
提取来两个列表 list1=["35%"."32%","28%"] list2=[“170”,“160”,“180”]
如何对应比较取值呢?
a = [{'姓名':'张三','结果':'35%','身高':'170'},
    {'姓名':'李四','结果':'32%','身高':'160'},
    {'姓名':'王五','结果':'28%','身高':'180'}]
b=[]
for i in a:
    if int(i['结果'].split('%')[0]) > 30 :
        b.append(i['身高'])
print(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-9-9 10:03:11 | 显示全部楼层
和刚才差不多,但是换成百分数就搞不定了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 10:07:08 | 显示全部楼层
百分数换算成整数不就好了么?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-9 10:11:01 | 显示全部楼层
疾风怪盗 发表于 2020-9-9 10:07
百分数换算成整数不就好了么?

提取来两个列表 list1=["35%"."32%","28%"] list2=[“170”,“160”,“180”]
如何对应比较取值呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 10:15:54 | 显示全部楼层
lanyacp 发表于 2020-9-9 10:11
提取来两个列表 list1=["35%"."32%","28%"] list2=[“170”,“160”,“180”]
如何对应比较取值呢?
a = [{'姓名': '张三', '结果': '35%', '身高': 170}, {'姓名': '李四', '结果': '32%', '身高': 160}, {'姓名': '王五', '结果': '28%', '身高': 180}]
b = []
for i in range(len(a)):
    a[i]['结果']=int(a[i]['结果'][:-1])
    if a[i]['结果'] > 30:
        b.append(a[i]['身高'])

print(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 10:16:51 | 显示全部楼层    本楼为最佳答案   
lanyacp 发表于 2020-9-9 10:11
提取来两个列表 list1=["35%"."32%","28%"] list2=[“170”,“160”,“180”]
如何对应比较取值呢?
a = [{'姓名':'张三','结果':'35%','身高':'170'},
    {'姓名':'李四','结果':'32%','身高':'160'},
    {'姓名':'王五','结果':'28%','身高':'180'}]
b=[]
for i in a:
    if int(i['结果'].split('%')[0]) > 30 :
        b.append(i['身高'])
print(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-9 10:52:32 | 显示全部楼层

百分号后面那个【0】是什么作用啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 10:54:10 | 显示全部楼层
lanyacp 发表于 2020-9-9 10:52
百分号后面那个【0】是什么作用啊

获取solit返回列表的第一个元素
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 10:58:22 | 显示全部楼层
lanyacp 发表于 2020-9-9 10:11
提取来两个列表 list1=["35%"."32%","28%"] list2=[“170”,“160”,“180”]
如何对应比较取值呢?

这就对了嘛。说清楚数据到底是数字还是字符串,这样才能帮你嘛
下面程序第四行,帮你解释一下。
people['结果']这个是取出字典中key为'结果'的值,即'35%',然后再去掉该字符串的最后一位% ,people['结果'][:-1],得到"35",再用int()将之转为数字,最后和30进行比较
def find_heigh(list1):
    heigh=[]
    for people in list1:
        if int(people['结果'][:-1])>30:
            heigh.append(people['身高'])
    return heigh

list1=[{"姓名":"张三","结果":"35%","身高":170},{"姓名":"李四","结果":"32%","身高":160},{"姓名":"王五","结果":"28%","身高":180}]
print(find_heigh(list1))
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-9 11:14:09 | 显示全部楼层

如果百分数带个小数比如 35.00%,前免、面是不是就不用 int了,需要怎么修改呢?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 11:28:42 | 显示全部楼层
lanyacp 发表于 2020-9-9 11:14
如果百分数带个小数比如 35.00%,前免、面是不是就不用 int了,需要怎么修改呢?
a = [{'姓名':'张三','结果':'35.00%','身高':'170'},
    {'姓名':'李四','结果':'32.00%','身高':'160'},
    {'姓名':'王五','结果':'28.00%','身高':'180'}]
b=[]
for i in a:
    if float(i['结果'].split('%')[0]) > 30.00 :
        b.append(i['身高'])
print(b)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-9-9 15:24:36 | 显示全部楼层

还要请教一个问题,“身高”那一项的值是一个几个数字组成的字符串,就不能append添加了,有什么方法解决吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-9-9 15:31:20 | 显示全部楼层
lanyacp 发表于 2020-9-9 15:24
还要请教一个问题,“身高”那一项的值是一个几个数字组成的字符串,就不能append添加了,有什么方法解决 ...

什么意思,把你现在的身高数据发一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-18 18:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表