首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在默认的dict中保持相同的值

在默认的dict中保持相同的值
EN

Stack Overflow用户
提问于 2016-10-19 03:52:11
回答 1查看 61关注 0票数 1

我有以下两份清单:

代码语言:javascript
复制
prefix = ['AGG', 'CAG', 'CAG', 'GAG', 'GGA', 'GGG', 'GGG']
suffix = ['GGG', 'AGG', 'AGG', 'AGG', 'GAG', 'GGA', 'GGG']

我试图使用defaultdict来获得以下结果:

代码语言:javascript
复制
AGG -> GGG
CAG -> AGG,AGG
GAG -> AGG
GGA -> GAG
GGG -> GGA,GGG

(是的,对于那些知道的人来说,这是一个罗莎琳德的问题。我真的想学习如何有效地使用字典,所以我并不是在寻找家庭作业的答案。只是字典的帮助。)

这是我的密码:

代码语言:javascript
复制
from collections import defaultdict
nodes = defaultdict(set)
for pre, suf in zip(prefix, suffix):
    nodes[pre].add(suf)
for k,v in nodes.items():
    print(k,v)

这是我的结果:

代码语言:javascript
复制
CAG {'AGG'}
GAG {'AGG'}
GGG {'GGG', 'GGA'}
AGG {'GGG'}
GGA {'GAG'}

所以我有两个问题:

1)我需要将AGG ( CAG的值)保存为两个相同的实例。

2)我想不出如何从字典中很好地打印出来,没有括号和引号,并添加箭头。

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-19 03:54:43

使用defaultdict of list,而不是set。集合移除重复项。

您的代码已经很好,您只需更改

代码语言:javascript
复制
nodes[pre].add(suf)

代码语言:javascript
复制
nodes[pre].append(suf)

对于印刷来说,就像

代码语言:javascript
复制
print('{} -> {}'.format(k, ','.join(v)))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40121804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档