在 Python 中获取字符串中的唯一字符
Get the unique characters in a String in Python
要获取字符串中的唯一字符:
- 使用
set()
该类将字符串转换set
为唯一字符。 - 使用该
str.join()
方法将字符连接成一个字符串。 - 新字符串将包含原始字符串的唯一字符。
主程序
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 对象存储唯一元素的无序集合,因此将字符串转换为 a
set
会删除所有重复字符。最后一步是使用该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']
该类list
将set
对象转换为列表。
集合对象是无序的。如果需要保留字符的顺序,请使用dict.fromkeys()
方法。
使用 dict.fromkeys() 获取字符串中的唯一字符
要获取字符串中的唯一字符:
- 使用该
dict.fromkeys()
方法从字符串创建字典。 - 使用该
str.join()
方法将字典的键连接成一个字符串。 - 新字符串将包含原始字符串的唯一字符。
主程序
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
.