首页 > 解决方案 > 如何删除 m² 并将 ha 转换为 m²?

问题描述

很抱歉这个基本问题,我刚开始学习,我觉得这很困难。示例我有一个列表,其中有面积大小,我需要将它们全部设为 m²,因此我必须以某种方式将 ha 乘以 10 000。

{
 '17001:003:0009': '712 m²', '17001:003:0010': '1694 m²',
 '33101:004:0568': '2070 m²', '33101:003:0502': '3553 m²', 
 '33101:003:0503': '2308 m²', '69403:002:0317': '23.95 ha', 
 '69403:001:0263': '8.76 ha', '33101:001:0197': '5.05 ha', 
 '33101:003:0550': '2.65 ha', '33101:004:0596': '2.45 ha'
}

标签: pythonthonny

解决方案


遍历键和值并ha在值的末尾进行测试。相应地处理。请注意,有 10K 平方米/公顷。

from pprint import pprint

d = {
 '17001:003:0009': '712 m²', '17001:003:0010': '1694 m²',
 '33101:004:0568': '2070 m²', '33101:003:0502': '3553 m²', 
 '33101:003:0503': '2308 m²', '69403:002:0317': '23.95 ha', 
 '69403:001:0263': '8.76 ha', '33101:001:0197': '5.05 ha', 
 '33101:003:0550': '2.65 ha', '33101:004:0596': '2.45 ha'
}

for k,v in d.items():
    num = float(v[:-2])
    d[k] = num * 10_000 if v.endswith('ha') else num

pprint(d)

输出:

{'17001:003:0009': 712.0,
 '17001:003:0010': 1694.0,
 '33101:001:0197': 50500.0,
 '33101:003:0502': 3553.0,
 '33101:003:0503': 2308.0,
 '33101:003:0550': 26500.0,
 '33101:004:0568': 2070.0,
 '33101:004:0596': 24500.0,
 '69403:001:0263': 87600.0,
 '69403:002:0317': 239500.0}

推荐阅读