我有一个双字母组合和三元组列表:
string = 'do not be sad'
a_list: = ['do', 'not', 'do not', 'be', 'not be', 'do not be', 'sad', 'be sad', 'not be sad']
我想知道是否有一个函数来反转a_list
中的二元组和三元组?我知道我可以加入所有字符串并删除重复项,但这会丢失句子的结构。我正在寻找是否有人有任何提示,以便a_list
可以恢复到原来的字符串。
所需的输出将是:
b_list = ['do not be sad']
答案 0 :(得分:1)
试试这个
NULL
输出
string = 'do not be sad'
string = string.split()
a_list = ['do', 'not', 'do not', 'be', 'not be', 'do not be', 'sad', 'be sad', 'not be sad']
new = []
for a in string:
for b in a_list:
if a == b:
new.append(b)
print([' '.join(new)])
我们可以把它变成一个漂亮的单行
['do not be sad']
编辑:为了回应zondo的评论,我决定编辑我的答案,而且我发现这个问题非常有趣
print([' '.join([b for a in string for b in a_list if a == b])])
我还创建了几个测试用例来测试我的解决方案,他们都通过了
答案 1 :(得分:0)
使用列表理解:
a_sentence = [" ".join(word for word in a_list if len(word.split()) == 1)]
print(a_sentence)
# Output: ['do not be sad']