为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
元芳怎么了 2021-06-16 18:04:41
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_sizeelse:    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)  }}
查看完整描述

1 回答

?
喵喵时光机

TA贡献1846条经验 获得超7个赞

PHP 到 Python


input_data = ['Sofia 50', 'Sofia 20', 'Sofia 30', 'Varna 10', 'Varna 20']

result = {}


for elem in input_data:                     #Iterate each element. 

    key, value = elem.split()               #Split on space

    if key not in result:                   #Check if key exists in result

        result[key] = {'count': 0,'sum': 0}

    result[key]['count'] += 1                #Increment count

    result[key]['sum'] += int(value)         #Increment value


print(result)

输出:


{'Sofia': {'count': 3, 'sum': 100}, 'Varna': {'count': 2, 'sum': 30}}


查看完整回答
反对 回复 2021-06-19
  • 1 回答
  • 0 关注
  • 124 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信