将Python字典拆分为多个键,将值平分
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了将Python字典拆分为多个键,将值平分,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1618字,纯文字阅读大概需要3分钟。
内容图文
我想分割一个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}
内容总结
以上是互联网集市为您收集整理的将Python字典拆分为多个键,将值平分全部内容,希望文章能够帮你解决将Python字典拆分为多个键,将值平分所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。