Ric*_*ick 1 python list-comprehension list
所以我写了这个函数,它接受一个字符串并删除连续的重复单词。
def remove_consecutive_duplicates(s):
previous_string = None
li = []
for i in s.split():
if i != previous_string:
li.append(i)
previous_string = i
return " ".join(li)
Run Code Online (Sandbox Code Playgroud)
输入:
'alpha beta beta gamma gamma gamma delta alpha beta beta gamma gamma gamma delta'
输出:
'alpha beta gamma delta alpha beta gamma delta'
但我的问题是如何将previous_string = i它添加到列表理解中?这甚至可能吗?
通常,如果没有,previous_string = i那么我可能会这样做:
def remove_consecutive_duplicates(s):
previous_string = None
return " ".join([i for i in s.split() if i != previous_string])
Run Code Online (Sandbox Code Playgroud)
但我不知道previous_string = i在这种情况下如何或在哪里添加。
从 Python 3.8 开始,您可以使用赋值表达式 :=
def remove_consecutive_duplicates(s):
prev = None
return " ".join([prev := i for i in s.split() if i != prev])
Run Code Online (Sandbox Code Playgroud)