gpt4 book ai didi

python - 如何从python字符串中删除连续的单字母字符

转载 作者:行者123 更新时间:2023-12-01 07:30:21 26 4
gpt4 key购买 nike

我有一个字符串,如下所示,我想删除长度超过 5 个的连续单字母字符。

mystring = "the nucleotide sequence of wheat triticum aestivum l chloroplastid ribosome associated 4 5 s rna is u a g u g a g c g c g a g a c g a g c g u a u a g u g u c a g u g a g u g c a g u g a u g u a u g c a g c u g a g c a u c u a c g a c g a c g a u g a coh"

我的输出应如下所示。

myoutput = "the nucleotide sequence of wheat triticum aestivum l chloroplastid ribosome associated 4 5 s rna is coh"

我尝试按如下方式进行操作。

 for i, my in enumerate(line.split()):
if len(my) == 1:
count = count + 1
else:
count = 0
if count == 5:
print(i)

总之,我正在计数并检查它是否有 5 个长度的单字母字符,并从列表中删除 5 个位置,依此类推。

但是,在不使用变量来计算长度并删除 5 by 5 的情况下,我想以更有效的 Python 方式执行此操作。

如果需要,我很乐意提供更多详细信息。

最佳答案

我相信在这种情况下,我们可以使用正则表达式来解决这个问题:

mystring = ("the nucleotide sequence of wheat triticum aestivum l"
"chloroplastid ribosome associated 4 5 s rna is u a "
"g u g a g c g c g a g a c g a g c g u a u a g u g u "
"c a g u g a g u g c a g u g a u g u a u g c a g c u "
"g a g c a u c u a c g a c g a c g a u g a coh")
print(mystring)

# See https://regex101.com/r/aUDK7K/1
# \b: word boundary
# \w: word char
# \s+: one or more white spaces
# {5,}: 5 or more times
shorten = re.sub(r'(\b\w\s+){5,}', '', mystring)
print(shorten)

关于python - 如何从python字符串中删除连续的单字母字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57232771/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com