迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

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

作者:迹忆客 最近更新:2022/11/24 浏览次数:

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

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

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

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

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

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

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

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

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

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

my_str = 'jiyik'

print(set(my_str)) # 👉️ {'i', 'j', 'k', 'y'}

集合对象存储唯一元素的无序集合,因此将字符串转换为集合会删除所有重复字符。

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

my_str = 'jiyik'

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

result = list(set(my_str))
print(result)  # 👉️ ['j', 'i', 'y', 'k']

python join() 方法将集合连接成字符串

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

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

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

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

my_str = 'jiyik'

result = list(set(my_str))
print(result)  # 👉️ ['k', 'y', 'i', 'j']

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

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

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

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

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

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

print(result)  # 👉️ jiyk

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

my_str = 'jiyik'

# 👇️ {'j': None, 'i': None, 'y': None, 'k': None}
print(dict.fromkeys(my_str))

python fromkeys 创建一个新字典

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

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

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

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

from typing import OrderedDict


my_str = 'jiyik'

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

print(result)  # 👉️ jiyk

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

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

本站文章均为原创或翻译,转载请发邮件至 1244347461@qq.com 进行申请,未经许可,禁止转载。经作者同意之后,转载请以链接形式注明出处

本文地址:

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签

扫码一下
查看教程更方便