python - 删除字符串中连续字符重复数据的最快方法 - Python

标签 python string unicode duplicates

<分区>

我们可以通过以下方式对字符串中的连续字符进行重复数据删除:

def deduplicate(string, char):
    return char.join([substring for substring in string.strip().split(char) if substring])

例如

>>> s = 'this is   an   irritating string with  random spacing  .'
>>> deduplicate(s)
'this is an irritating string with random spacing .'

在命令行上,tr 有一个squeeze 选项:

$ tr -s " " < file

Python的字符串中有squeeze函数吗?

在 Python 中删除字符串中连续字符的最快方法是什么?

请注意,要删除重复的字符应该是任何 ascii/unicode 字符,而不仅仅是 \s/空格。 (对于 ascii 和 unicode 有 2 个子答案很好。

最佳答案

Itertools 是一个不错的库

>>> t = "THHHISSS ISSS BBBBSSSSS"
>>> import itertools
>>> ''.join(char for char, _ in itertools.groupby(t))
'THIS IS BS'

关于python - 删除字符串中连续字符重复数据的最快方法 - Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216559/

相关文章:

c# - 当我们将字符串变量作为 ref 参数传递给函数并在函数中更改字符串变量的值时

sql-server - MS-SQL-Server 上的 INSERT 语句中的 UTF-8 字符发生更改

javascript - Javascript 中的正则表达式结构

python - 如何在创建后更改 matplotlib LineCollection 的偏移量

python - 将文件内容读入数组

python - 如果我想基于列 ort 数据帧,我可以在函数 read_csv 中使用函数 "sort by"吗?

C# 字符串长度返回错误的数量

python - 如何使用当前登录用户作为 Django DetailView 的 PK?

java - 在没有 java.lang.String 的情况下比较 Java 中的字符串

java - 如何在 jcombobox 中显示泰米尔语和英语字符 - java