猿问

使用 Python 语法编写此 PHP 代码的最简单方法是什么?

PHP代码:


<?php


$result = [];


$input = ['Sofia 50', 'Sofia 20', 'Sofia 30', 'Varna 10', 'Varna 20'];


foreach ($input as $item) {

    $keyValuePairs = explode(' ', $item);

    $key = $keyValuePairs[0];

    $value = $keyValuePairs[1];

    if (array_key_exists($key, $result)) {

        $result[$key]['count'] += 1;

        $result[$key]['sum'] += $value;

    } else {

        $result[$key]['count'] = 1;

        $result[$key]['sum'] = $value;

    }

}


echo '<pre>';

var_dump($result);

我在 Python 中尝试过的:


input_row = input_row.split(' ')

region_name = input_row[0]

region_size = input_row[1]


if region_name in result:

    result[region_name]['count'] += 1

    result[region_name]['sum'] += region_size

else:

    result[region_name]['count'] = 1

    result[region_name]['sum'] = region_size

但它在 Python 中不起作用。


我期望什么结果:


array(2) {

  ["Sofia"]=>

  array(2) {

    ["count"]=>

    int(3)

    ["sum"]=>

    int(100)

  }

  ["Varna"]=>

  array(2) {

    ["count"]=>

    int(2)

    ["sum"]=>

    int(30)

  }

}


元芳怎么了
浏览 125回答 1
1回答

喵喵时光机

PHP 到 Pythoninput_data = ['Sofia 50', 'Sofia 20', 'Sofia 30', 'Varna 10', 'Varna 20']result = {}for elem in input_data:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#Iterate each element.&nbsp;&nbsp; &nbsp; key, value = elem.split()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#Split on space&nbsp; &nbsp; if key not in result:&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#Check if key exists in result&nbsp; &nbsp; &nbsp; &nbsp; result[key] = {'count': 0,'sum': 0}&nbsp; &nbsp; result[key]['count'] += 1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #Increment count&nbsp; &nbsp; result[key]['sum'] += int(value)&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#Increment valueprint(result)输出:{'Sofia': {'count': 3, 'sum': 100}, 'Varna': {'count': 2, 'sum': 30}}
随时随地看视频慕课网APP
我要回答