加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

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

发布时间:2020-12-20 13:50:02 所属栏目:Python 来源:网络整理
导读:我想分割一个 Python字典,将键分成多个,同时将每个键的值平分. 样本数据: {'S-NSW-BAC-ENG': 15,'S-NSW-BAC-FBE': 30} 我想转换为: {'H-NSW-BAC-ENG': 5,'C-STD-BM-SUM': 5,'G-CAM-BAC-SUM': 5,'H-NSW-BAC-FBE': 10,'C-STD-BM-SUM': 10,'G-CAM-BAC-SUM': 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-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}

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

解决方法

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

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}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读