所以这是我在一起添加dicts的程序的代码。
SELECT [imucc_awdb].[dbo].[Call_Type].[CallTypeID],
[imucc_awdb].[dbo].[Call_Type].[EnterpriseName],
[imucc_awdb].[dbo].[Call_Type_SG_Interval].SkillGroupSkillTargetID,
[imucc_awdb].[dbo].[Skill_Group].[EnterpriseName],
[imucc_awdb].[dbo].[Skill_Group_Member].[SkillGroupSkillTargetID],
[imucc_awdb].[dbo].[Agent].[SkillTargetID],
[imucc_awdb].[dbo].[Agent].[EnterpriseName]
FROM [imucc_awdb].[dbo].[Call_Type] join [imucc_awdb].[dbo].[Call_Type_SG_Interval] on [imucc_awdb].[dbo].[Call_Type].CallTypeID=[imucc_awdb].[dbo].[Call_Type_SG_Interval].CallTypeID
join Skill_Group
on [imucc_awdb].[dbo].[Call_Type_SG_Interval].SkillGroupSkillTargetID=[imucc_awdb].[dbo].[Skill_Group].[SkillTargetID]
join Skill_Group_Member
on [imucc_awdb].[dbo].[Skill_Group].[SkillTargetID]=[imucc_awdb].[dbo].[Skill_Group_Member].[SkillGroupSkillTargetID]
join Agent
on [imucc_awdb].[dbo].[Skill_Group_Member].[AgentSkillTargetID]=[imucc_awdb].[dbo].[Agent].[SkillTargetID]
order by [imucc_awdb].[dbo].[Call_Type].[EnterpriseName]
这是我目前的输出:
from collections import Counter
from itertools import chain
def add_sparse_vectors(lst1,lst2):
dest = dict(Counter(lst1)+Counter(lst2))
return dest
问题是我的作业具体要求输出:
>>> v1 = {0:1, 1:3, 2:1}
>>> v2 = {0:1}
>>> add_sparse_vectors(v1, v2)
{0: 2, 1: 3, 2: 1}
有没有人有解决方案从输出中的键值对中删除此特定空间?任何帮助表示赞赏。
答案 0 :(得分:1)
如果你真的想摆脱空格,你不需要实现自定义的dict
类,就像@zondo建议的那样。赋值只要求表示没有空格。如果add_sparse_vectors
返回字符串而不是字典,则无需更改dict
的行为。
虽然我认为这不是特别优雅,但确实摆脱了空间。
def add_sparse_vectors(v1, v2):
combined_dict = dict(Counter(lst1)+Counter(lst2))
key_val_pairs = [str(k)+":"+str(v) for k,v in combined_dict.items()]
output = "{" + ", ".join(key_val_pairs) + "}"
return output
答案 1 :(得分:0)
你可以为字典编写自己的打印功能:
def print_dict(d):
print('{'+', '.join('{}:{}'.format(k, v) for k, v in d.items())+'}')
这就是你的练习所要求的,但实际上我认为只要任务得到正确解决,他们就不应该关心一些空格......