import timeit
text = "hello world python" * 1000
#方法1
# dict.fromkeys() 通常最快且保留顺序
def method_dict():
return ''.join(dict.fromkeys(text))
#方法2
def method_loop():
seen = set()
return ''.join([char for char in text if not (char in seen or seen.add(char))])
#方法3
def method_set():
# 不保留顺序
return ''.join(set(text))
# 测试性能
time_dict = timeit.timeit(method_dict, number=100)
time_loop = timeit.timeit(method_loop, number=100)
time_set = timeit.timeit(method_set, number=100)
print(f"dict方法:{time_dict:.4f}") #dict方法:0.0119
print(f"loop方法:{time_loop:.4f}") #loop方法:0.0244
print(f"set方法(无顺序):{time_set:.4f}") #set方法(无顺序):0.0073
推荐:日常使用 ''.join(dict.fromkeys(text)),简单高效且保留顺序!

本文探讨了字符串处理的基本操作,通过示例展示了如何使用Python去除重复字符,输出了一个独特的字符序列。这涉及到字符集的分析和字符串的遍历操作。

2178

被折叠的 条评论
为什么被折叠?



