将字符串中的所有数字移到末尾

2024-10-01 07:43:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要帮助找出如何把数字移到字符串的末尾。你知道吗

例如,'y0b3'应该变成'yb03'。你知道吗


Tags: 字符串数字末尾y0b3yb03
2条回答

既然你标记了发电机。。。您可以为此任务编写以下生成器:

def digits_last(string):
    hold = []
    for c in string:
        if c.isdigit():
            hold.append(c)
        else:
            yield c
    yield from hold

演示:

>>> ''.join(digits_last('y0b3y0b3u0b2'))
>>> 'ybybub030302'

你可以这样做:

def group(string):

    digits = []
    non_digits = []
    for c in string:
        if c.isdigit():
            digits.append(c)
        else:
            non_digits.append(c)

    return ''.join(non_digits) + ''.join(digits)

result = group('y0b3')

print(result)

输出

yb03

其思想是将每个字符分组为数字和non_digits,然后将非数字放在第一位,digits放在最后。要连接digitsnon_digits,请使用join。你知道吗

相关问题 更多 >