将Python字典拆分为多个键,将值平分

将Python字典拆分为多个键,将值平分,第1张

概述我想分割一个 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 我想分割一个 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_workbookwb = 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 spreadsheetfor 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 Valuesfor 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}

有问题的词典是传染媒介.

解决方法 我不确定你想如何命名你的“分裂”键,但生成器功能应该是一个简单的方法来实现你想要的.请看这个例子,记住键的名称是错误的.

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字典拆分为多个键,将值平分所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1197307.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存