如何比较这两个长度不等的python元组,并根据比较结果输出另一个元组?

2024-09-28 01:32:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个元组

Tup1= ( ('AAA', 2), ('BBB', 3) )

我有另一个元组

^{pr2}$

我想比较Tup1和{}。基于比较,我想创建另一个元组,如下所示

OutputTup = ( ('AAA', 2), ('BBB', 3), ('CCC', 0), ('DDD', 0) )

逻辑是这样的。检查Tup2中的每个元素,然后在Tup1中查找匹配的元素。如果Tup1中有匹配的元素(例如“AAA”),请复制到OutputTup('AAA',2)。如果没有匹配的元素(例如“CCC”),则分配值0并附加到OutputTup(“CCC”,0)。在

在Python2.7中如何做到这一点?谢谢。在


Tags: 元素逻辑元组bbbcccdddaaapr2
2条回答

这也适用于您想要的输出:

tup1 = ( ('AAA', 2), ('BBB', 3) )
tup2 = ('AAA', 'BBB', 'CCC', 'DDD')
dic = dict( tup1 )
for tri in tup2:
    dic[tri] = dic.get(tri,0)

print tuple(dic.items()) 
#(('AAA', 2), ('BBB', 3), ('CCC', 0), ('DDD', 0))

请修改我的答案。我不知道如何检查字体。如果有人知道请随意编辑我的答案

from itertools import izip,izip_longest
Tup1= ( ('AAA', 2), ('BBB', 3) )
Tup2 = ('AAA', 'BBB', 'CCC', 'DDD')
lis=[ i if type(i[0])==type(0) else i[0] for i in list(izip_longest(Tup1, Tup2 , fillvalue=0))]



#output [('AAA', 2), ('BBB', 3), (0, 'CCC'), (0, 'DDD')]

相关问题 更多 >

    热门问题