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}}
- 1 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消