lanyacp 发表于 2020-9-9 10:02:34

百分数如何比较取值

从字典中的的字典取值
比如字典[{姓名:张三,结果:35%,身高:170},{姓名:李四,结果:32%,身高:160},{姓名:王五,结果:28%,身高:180}]
从字典中去取出结果大于30%的人的身高值,组成一个列表结果【170,160】
如何去编写
求大神解决
谢谢

lanyacp 发表于 2020-9-9 10:03:11

和刚才差不多,但是换成百分数就搞不定了{:5_109:}

疾风怪盗 发表于 2020-9-9 10:07:08

百分数换算成整数不就好了么?{:5_99:}

lanyacp 发表于 2020-9-9 10:11:01

疾风怪盗 发表于 2020-9-9 10:07
百分数换算成整数不就好了么?

提取来两个列表 list1=["35%"."32%","28%"] list2=[“170”,“160”,“180”]
如何对应比较取值呢?

疾风怪盗 发表于 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['结果']=int(a['结果'][:-1])
    if a['结果'] > 30:
      b.append(a['身高'])

print(b)

1q23w31 发表于 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('%')) > 30 :
      b.append(i['身高'])
print(b)

lanyacp 发表于 2020-9-9 10:52:32

1q23w31 发表于 2020-9-9 10:16


百分号后面那个【0】是什么作用啊

1q23w31 发表于 2020-9-9 10:54:10

lanyacp 发表于 2020-9-9 10:52
百分号后面那个【0】是什么作用啊

获取solit返回列表的第一个元素

sunrise085 发表于 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))

lanyacp 发表于 2020-9-9 11:14:09

1q23w31 发表于 2020-9-9 10:16


如果百分数带个小数比如 35.00%,前免、面是不是就不用 int了,需要怎么修改呢?

1q23w31 发表于 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('%')) > 30.00 :
      b.append(i['身高'])
print(b)

lanyacp 发表于 2020-9-9 15:24:36

1q23w31 发表于 2020-9-9 10:16


还要请教一个问题,“身高”那一项的值是一个几个数字组成的字符串,就不能append添加了,有什么方法解决吗?

1q23w31 发表于 2020-9-9 15:31:20

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

什么意思,把你现在的身高数据发一下
页: [1]
查看完整版本: 百分数如何比较取值