去掉字典交集后的括号
我正在处理一个问题,得到了一个很接近的答案……基本上,这个问题是你有两个字典(可以理解为一组键值对),你需要找出这两个字典中相同的元素,然后把这些元素(两个字典中相同的键和它们对应的值)放到一个新的字典里。
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
你看到的输出是你字典在Python中的表现形式。你创建的这个东西(根据我所了解,你创建得很正确——这正是你想要的)是一个字典,它把键映射到一对一对的项目上。这些对是元组,打印出来的时候会带上括号。
听起来你想要的是一个方法,可以把你的字典以特定的格式打印出来。
像下面这样可以按照你想要的方式打印字典:
def dictionary_printer(d):
print "{%s}" % ', '.join(
[("'%s': %s" % (key, ', '.join(map(str,value))))
for key, value in d.items()]
)
5
你写的代码不会输出任何东西。不过,如果你想去掉括号,可以使用这个方法。
str(intersect(a, b)).replace('(', '').replace(')', '')
或者你也可以用这个方法,它更简洁高效一些。
str(intersect(a, b)).translate(None, '()')