【问题标题】:How can I remove m² and convert ha into m²?如何删除 m² 并将 ha 转换为 m²?
【发布时间】:2021-11-10 18:48:17
【问题描述】:

对不起,这个基本问题,我刚开始学习,我觉得这很困难。示例我有一个列表,其中有面积大小,我需要将它们全部设为 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'
}

【问题讨论】:

  • 您需要更好地解释您要做什么。我们看不到您的计算机,所以我们不知道您在学习什么!您是在问如何在空间上拆分字符串?从 Python 字典中检索项目?或者你真的需要计算一些单位换算吗?

标签: python thonny


【解决方案1】:

遍历键和值并在值的末尾测试ha。相应地处理。注意有 10K m²/ha。

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}

【讨论】:

    【解决方案2】:

    这样做会保留值的类型和样式:

    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():
        if v[-2:] == 'ha':
            D[k] = f'{round(float(v[:-2]) * 10_000)} m²'
    pprint(D)
    
    {'17001:003:0009': '712 m²',
     '17001:003:0010': '1694 m²',
     '33101:001:0197': '50500 m²',
     '33101:003:0502': '3553 m²',
     '33101:003:0503': '2308 m²',
     '33101:003:0550': '26500 m²',
     '33101:004:0568': '2070 m²',
     '33101:004:0596': '24500 m²',
     '69403:001:0263': '87600 m²',
     '69403:002:0317': '239500 m²'}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      • 2021-05-16
      • 1970-01-01
      • 2021-02-11
      • 1970-01-01
      • 2011-03-01
      • 1970-01-01
      相关资源
      最近更新 更多