下面是一个示例代码,用于遍历列表并为不同列值添加行计数的新列:
def add_row_count_column(data_list, column_index):
count_dict = {}
result_list = []
for row in data_list:
# 获取当前行的指定列的值
column_value = row[column_index]
# 如果该值已经存在在count_dict中,则将对应的计数加1
if column_value in count_dict:
count_dict[column_value] += 1
# 否则,将该值加入count_dict,并设置计数为1
else:
count_dict[column_value] = 1
# 将当前行复制到一个新的字典中,并添加一个新的列,值为当前计数
new_row = dict(row)
new_row['Count'] = count_dict[column_value]
# 将新的行添加到结果列表中
result_list.append(new_row)
return result_list
# 示例用法
data = [
{'Name': 'Alice', 'Age': 25},
{'Name': 'Bob', 'Age': 30},
{'Name': 'Alice', 'Age': 35},
{'Name': 'Alice', 'Age': 40},
{'Name': 'Bob', 'Age': 45},
]
result = add_row_count_column(data, 'Name')
# 输出结果
for row in result:
print(row)
输出结果为:
{'Name': 'Alice', 'Age': 25, 'Count': 1}
{'Name': 'Bob', 'Age': 30, 'Count': 1}
{'Name': 'Alice', 'Age': 35, 'Count': 2}
{'Name': 'Alice', 'Age': 40, 'Count': 3}
{'Name': 'Bob', 'Age': 45, 'Count': 2}
在这个示例中,我们定义了一个函数add_row_count_column
,它接受两个参数:data_list
是一个包含字典的列表,column_index
是要进行计数的列的索引或键名。函数首先创建一个空字典count_dict
来存储每个不同列值的计数。然后,遍历data_list
中的每一行,获取指定列的值,并根据该值在count_dict
中进行计数。接下来,创建一个新的字典new_row
,将当前行的内容复制到其中,并添加一个新的列'Count'
,值为当前计数。最后,将新的行添加到结果列表result_list
中。函数返回最终的结果列表。
在示例代码中,我们使用一个包含姓名和年龄的数据列表作为示例数据。我们调用add_row_count_column
函数,并将列名'Name'
作为计数列的参数。然后,遍历结果列表并打印每一行的内容。可以看到,新添加的列'Count'
保存了每个姓名出现的次数。