在 Python 中获取字符串中的唯一字符

Python 中要获取字符串中的唯一字符:

  1. 使用 set() 类将字符串转换为一组唯一字符。
  2. 使用 str.join() 方法将字符连接成字符串。
  3. 新字符串将由原始字符串的唯一字符组成。
my_str = 'hello'

# ✅ Get unique characters in a string (order not preserved)

result = ''.join(set(my_str))
print(result)  # 👉️ loeh

# -----------------------------------------

# ✅ Get unique characters in a string (order preserved)

result = ''.join(dict.fromkeys(my_str).keys())
print(result)  # 👉️ helo

在 Python 中获取字符串中的唯一字符

第一个示例使用 set() 类来获取字符串中的唯一字符。

set() 类接受一个可迭代的可选参数,并返回一个新的集合对象,其中的元素取自可迭代对象。

my_str = 'hello'

print(set(my_str)) # 👉️ {'e', 'l', 'o', 'h'}

最后一步是使用 str.join() 方法将集合连接成字符串。

my_str = 'hello'

result = ''.join(set(my_str))
print(result)  # 👉️ lohe

result = list(set(my_str))
print(result)  # 👉️ ['l', 'o', 'h', 'e']

str.join() 方法将一个可迭代对象作为参数并返回一个字符串,该字符串是可迭代对象中字符串的串联。

我们使用空字符串分隔符将集合加入到没有分隔符的字符串中。

如果我们需要获取列表中字符串的唯一字符,请使用 list() 类。

my_str = 'hello'

result = list(set(my_str))
print(result)  # 👉️ ['e', 'l', 'o', 'h']

列表类将集合对象转换为列表。

集合对象是无序的。 如果您需要保留字符的顺序,请使用 dict.fromkeys() 方法。

使用 dict.fromkeys() 获取字符串中的唯一字符

要获取字符串中的唯一字符:

  1. 使用 dict.fromkeys() 方法从字符串创建字典。
  2. 使用 str.join() 方法将字典的键连接成字符串。
  3. 新字符串将由原始字符串的唯一字符组成
my_str = 'hello'

result = ''.join(dict.fromkeys(my_str).keys())

print(result)  # 👉️ helo

dict.fromkeys() 方法接受一个可迭代对象和一个值,并使用来自可迭代对象的键和设置为提供的值的值创建一个新字典

my_str = 'hello'

# 👇️ {'h': None, 'e': None, 'l': None, 'o': None}
print(dict.fromkeys(my_str))

字典键是唯一的,因此任何重复的字符都会被删除。

我们使用 dict.keys() 方法来获取字典键的视图并将对象连接到字符串中。

如果我们使用旧版本,请使用 OrderedDict 类来获取字符串中的唯一字符,同时保留顺序。

from typing import OrderedDict


my_str = 'hello'

result = ''.join(OrderedDict.fromkeys(my_str).keys())

print(result)  # 👉️ helo

OrderedDict 类是 dict 的子类,只是一个记住插入顺序的字典。

如果我们使用高于 3.7 的 Python 版本,则无需使用 OrderedDict 类。