在字典交集之后摆脱括号

时间:2012-01-14 05:43:06

标签: python dictionary intersection

我正在研究一个问题并得到一个非常接近的答案......基本上,问题是你得到两个词典,你必须找到从两个词典相交的元素然后创建那些元素(一个相同的键来自两个词组和来自两个dics的两个值在新词典中。

a = {'A':17,'B':31,'C':42,'D':7,'E':46,'F':39,'G':9}
b = {'D':8,'E':3,'F':2,'g':5}

def intersect(a,b):
    c = set(a).intersection(set(b))
    d = {}
    for i in c:
        if i in a:
            d[i] = int(a[i]),int(b[i])
    return d

OUTPUT: {'E': (46, 3), 'D': (7, 8), 'F': (39, 2)}

我希望输出像''E':46,3,'D':7,8,'F':39,2}

如何摆脱值周围的括号?

2 个答案:

答案 0 :(得分:4)

您编写的代码根本不会输出任何内容。但是,如果要删除括号,则可以使用此方法。

str(intersect(a, b)).replace('(', '').replace(')', '')

或者相当于此,这是更简洁和有效的

str(intersect(a, b)).translate(None, '()')

答案 1 :(得分:0)

您看到的输出是字典的python表示。你已经构建了(并且,据我所知,你已经正确构建它 - 它就是你想要的)是一个字典映射键到项目对。这些对是元组,并且在它们周围用括号打印。

这听起来像你想要的是一种方法,它以你的字典和打印方式,以特定的方式格式化。

像这样的东西会按照你想要的方式打印字典:

def dictionary_printer(d):
    print "{%s}" % ', '.join(
        [("'%s': %s" % (key, ', '.join(map(str,value))))
        for key, value in d.items()]
    )