gpt4 book ai didi

python - 用 re.sub 列表中的元素替换?

转载 作者:太空狗 更新时间:2023-10-30 02:22:37 25 4
gpt4 key购买 nike

在给定列表的情况下,用 re.sub 执行替换的最佳方法是什么?例如:

import re

some_text = 'xxxxxxx@yyyyyyyyy@zzzzzzzzz@'
substitutions = ['ONE', 'TWO', 'THREE']
x = re.sub('@', lambda i: i[0] substitutions.pop(0), some_text) # this doesn't actually work

期望的输出是:

some_text = 'xxxxxxxONEyyyyyyyyyTWOzzzzzzzzzTHREE'

最佳答案

你只是在你的 lambda 中有一个语法错误:

>>> substitutions = ['ONE', 'TWO', 'THREE']
>>> re.sub('@', lambda _: substitutions.pop(0), some_text)
'xxxxxxxONEyyyyyyyyyTWOzzzzzzzzzTHREE'

如果你不想修改列表,你可以把它包装成一个可迭代对象。

>>> substitutions = ['ONE', 'TWO', 'THREE']
>>> subs = iter(substitutions)
>>> re.sub('@', lambda _: next(subs), some_text)
'xxxxxxxONEyyyyyyyyyTWOzzzzzzzzzTHREE'

关于python - 用 re.sub 列表中的元素替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9455515/

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