如何在元组列表之间合并

时间:2019-07-20 11:12:08

标签: python-3.x

例如,这是列表

[('please', 'a'), ('answer', 'b'), ('this', 'a'), ('question', 'd'), ('thankyou', 'f')]

现在,当元组中的第二个元素相同时,我需要合并

预期输出为

please this

由于pleasethis的第二个元素都是a,因此需要将其合并。

2 个答案:

答案 0 :(得分:0)

您可以为此使用defaultdict

from collections import defaultdict


l = [('please','a'),('answer','b'),('this','a'),('question','d'),('thankyou','f')]

frequencies = defaultdict(list)

for word, key in l:
  frequencies[key].append(word)

output = ' '.join([words for (key, words) in frequencies.items() if len(words) > 1][0])

print(output)

# prints "please this"

repl.it link

答案 1 :(得分:0)

可以使用defaultdict做到这一点:

from collections import defaultdict

input_list = [('please', 'a'), ('answer', 'b'), ('this', 'a'), ('question', 'd'), ('thankyou', 'f')]
output_list = defaultdict(list)

for x, y in input_list: 
    output_list[y].append(x)

output_list.values()将具有以下结果:

dict_values([['please', 'this'], ['answer'], ['question'], ['thankyou']])