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

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

Get the unique characters in a String in Python

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

  1. 使用set()该类将字符串转换set为唯一字符。
  2. 使用该str.join()方法将字符连接成一个字符串。
  3. 新字符串将包含原始字符串的唯一字符。
主程序
my_str = 'bobby' # ✅ Get unique characters in a string (order not preserved) result = ''.join(set(my_str)) print(result) # 👉️ byo # ----------------------------------------- # ✅ Get unique characters in a string (order preserved) result = ''.join(dict.fromkeys(my_str).keys()) print(result) # 👉️ boy

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

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

主程序
my_str = 'bobby' print(set(my_str)) # 👉️ {'y', 'b', 'o'}
Set 对象存储唯一元素的无序集合,因此将字符串转换为 aset会删除所有重复字符。

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

主程序
my_str = 'bobby' result = ''.join(set(my_str)) print(result) # 👉️ byo result = list(set(my_str)) print(result) # 👉️ ['y', 'b', 'o']

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

调用该方法的字符串用作元素之间的分隔符。

我们使用空字符串分隔符将 连接set成一个没有定界符的字符串。

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

主程序
my_str = 'bobby' result = list(set(my_str)) print(result) # 👉️ ['y', 'b', 'o']

该类listset对象转换为列表。

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

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

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

  1. 使用该dict.fromkeys()方法从字符串创建字典。
  2. 使用该str.join()方法将字典的键连接成一个字符串。
  3. 新字符串将包含原始字符串的唯一字符。
主程序
my_str = 'bobby' result = ''.join(dict.fromkeys(my_str).keys()) print(result) # 👉️ boy

dict.fromkeys

方法接受一个可迭代对象和一个值,并使用可迭代对象中的键和设置为提供的值的值创建一个新字典

主程序
my_str = 'bobby' # 👇️ {'b': None, 'o': None, 'y': None} print(dict.fromkeys(my_str))

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

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

字典保留 Python 3.7 和更新版本中键的插入顺序。

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

主程序
from typing import OrderedDict my_str = 'bobby' result = ''.join(OrderedDict.fromkeys(my_str).keys()) print(result) # 👉️ boy

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

如果您使用OrderedDict高于3.7.