Python 如何使代码在text.split之后不打印两次单词
我可以添加什么使此代码不打印“sam”(在本例中)两次?尝试以下操作:Python 如何使代码在text.split之后不打印两次单词,python,Python,我可以添加什么使此代码不打印“sam”(在本例中)两次?尝试以下操作: text = """ sam may sam gray bet four vet large """ find = "a" words = text.split("\n") for w in words: if find in w: print(w) else : pass 使用集合
text = """ sam
may
sam
gray
bet
four
vet
large """
find = "a"
words = text.split("\n")
for w in words:
if find in w:
print(w)
else :
pass
使用集合,即
words=set(text.split(“\n”)
。缺点是,set
s没有排序。我是否使用它而不是words=text.split(“\n”)
这是否回答了您的问题?这是一种保持文本的原始顺序的好方法,但它效率很低,因为在使用集合isO(1)
时,在列表中进行查找是O(n)
。通过将used
定义为一个集合,您可以免费获得性能提升。
text = """
sam
may
sam
gray
bet
four
vet
large """
find = "a"
used = []
words = text.split("\n")
for w in words:
if find in w and w not in used:
print(w)
used.append(w)
else :
pass