gpt4 book ai didi

python - 将 Python 字典拆分为多个键,将值平均分配

转载 作者:太空宇宙 更新时间:2023-11-03 11:49:49 25 4
gpt4 key购买 nike

我想拆分一个 Python 字典,将键分成多个,同时将每个键的值平均分配。

示例数据:

{'S-NSW-BAC-ENG': 15, 'S-NSW-BAC-FBE': 30}

我想转换成:

{'H-NSW-BAC-ENG': 5, 'C-STD-B&M-SUM': 5, 'G-CAM-BAC-SUM': 5, 'H-NSW-BAC-FBE': 10, 'C-STD-B&M-SUM': 10, 'G-CAM-BAC-SUM': 10}

到目前为止我的代码:

from openpyxl import load_workbook

wb = load_workbook("scm.xlsx")

sheets_list = wb.get_sheet_names()

demand_input_sheet = wb['User pathways']
process_description_sheet = wb['Process description']
temporal_demand_sheet = wb['temporal demand distrobution']
demand_input_sheet = wb['demand input vectors']
sku_sheet = wb['Set to SKU array']
size_distribution_sheet = wb['size distribution']

Vector = {}
SKUs = []
Values = []

# For loop used to append the SKUs to a list. It does so by iterating through the selected cells from the spreadsheet
for row in demand_input_sheet.iter_rows('A5:A16'):
for cell in row:
SKUs.append(cell.value)

# Same things as above, but used to append the Values
for row in demand_input_sheet.iter_rows('B5:B16'):
for cell in row:
Values.append(cell.value)

Vector = dict(zip(SKUs, Values))

print(Vector)
wb.save("manipulated.xlsx")

输出:

{'S-NSW-BAC-ENG': 15, 'S-NSW-BAC-FBE': 30}

有问题的字典是 Vector。

最佳答案

我不太确定你想如何命名你的“拆分”键,但生成器函数应该是实现你想要的东西的简单方法。看这个例子,记住键的名字是错误的。

def gen(d):
for k, v in d.items():
yield ('H' + k[1:], v / 3)
yield ('C' + k[1:], v / 3)
yield ('G' + k[1:], v / 3)

然后,对于

d = {'S-NSW-BAC-ENG': 15, 'S-NSW-BAC-FBE': 30}

dict(gen(d))

将产生:

{'C-NSW-BAC-ENG': 5.0,
'G-NSW-BAC-ENG': 5.0,
'H-NSW-BAC-ENG': 5.0,
'C-NSW-BAC-FBE': 10.0,
'G-NSW-BAC-FBE': 10.0,
'H-NSW-BAC-FBE': 10.0}

关于python - 将 Python 字典拆分为多个键,将值平均分配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30447708/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com