在python list二维数组中,如果第二列的值相同,则第一列值相加
时间: 2024-09-06 16:03:10 浏览: 38
在 Python 中,如果你有一个二维列表(类似于表格数据),并且你想根据第二列的值对第一列的值求和,你可以采用以下几种方法:
1. 首先,你需要创建一个字典(dict),键是第二列的值,对应的值是一个列表,用于存储对应第二列值的第一列所有元素的和。遍历二维列表,检查每一项的第二列值是否已存在于字典中,若存在则累加第一列值到该键对应的值;若不存在,则创建新的键并初始化为0。
```python
data = [
[1, 2],
[2, 2],
[3, 2],
[4, 5]
]
result_dict = {}
for row in data:
if row[1] not in result_dict:
result_dict[row[1]] = [row[0]]
else:
result_dict[row[1]].append(row[0])
# 然后计算总和
final_results = {key: sum(value) for key, value in result_dict.items()}
```
2. 或者,如果你想保持原始的数据结构,可以用列表推导式和条件判断来创建一个新的列表,其中元素是对匹配第二列值的第一列值求和的结果:
```python
data = [
[1, 2],
[2, 2],
[3, 2],
[4, 5]
]
new_data = [[sum(group), col] for col, group in itertools.groupby(data, lambda x: x[1])]
```
上述代码会生成一个新列表,其中每个内部列表的第一个元素是第二列相同值下的第一列元素之和,第二个元素则是第二列的值。