这更像是一个好奇心/效率问题。我用x + 1替换字符串中的所有数字,如果它的9更改为0.我的代码破坏了:
def add_one(string):
return ''.join([(str(int(x)+1) for x in string if x in "012345678") and (y for y in string if y != '9') and (0 for z in string if z == '9')])
目标是" 123abc99"会导致" 234abc00"。
代码可以在多行上进行,但可能在一行中有多个列表推导吗?
答案 0 :(得分:1)
return "".join(str((int(x)+1) % 10) if x.isdigit() else x for x in string)