python 如何字符串去重

python 如何字符串去重

作者:William Gu发布时间:2026-01-13阅读时长:0 分钟阅读次数:6

用户关注问题

Q
怎么用 Python 去除字符串中的重复字符?

我有一个字符串,里面有重复的字符,怎么用 Python 把重复的字符去掉,保留唯一的字符?

A

使用 Python 去除字符串重复字符的方法

你可以利用 Python 的集合(set)来去除字符串中的重复字符,因为集合不会储存重复元素。示例代码:

input_str = 'banana'
unique_chars = ''.join(set(input_str))
print(unique_chars)  # 输出字符顺序可能不固定

不过这种方法不能保持原字符串中的字符顺序。

Q
如何保持字符串顺序去除重复字符?

我想在去除字符串重复字符的同时,保持原字符串中字符的顺序,这样有办法吗?

A

保持顺序的字符串去重方法

可以通过遍历字符串并用一个临时的容器记录已经出现的字符,只添加第一次出现的字符。示例代码:

def remove_duplicates(s):
    seen = set()
    result = []
    for char in s:
        if char not in seen:
            seen.add(char)
            result.append(char)
    return ''.join(result)

input_str = 'banana'
print(remove_duplicates(input_str))  # 输出 'ban'
Q
有没有 Python 内置函数或者库可以简化字符串去重操作?

除了手动写代码,有没有 Python 自带的函数或者库直接支持字符串去重?

A

Python 标准库中没有直接去重字符串的函数

Python 标准库本身没有专门用来去重字符串的函数,需要开发者通过集合、字典等数据结构自己实现。此外,使用 collections.OrderedDict 也能实现保持顺序的去重操作。示例如下:

from collections import OrderedDict

def remove_duplicates_ordered(s):
    return ''.join(OrderedDict.fromkeys(s))

input_str = 'banana'
print(remove_duplicates_ordered(input_str))  # 输出 'ban'