我正在尝试随机化“<”和“>”括号之间定义的元素位置,例如。 由此而来
<id:1 s= red>
<id:2 s= blue>
<id:3 s= green>
到此
<id:3 s= green>
<id:1 s= red>
<id:2 s= blue>
我将它们放入列表中,但无法将随机列表与正则表达式结果进行匹配。这是我到目前为止所得到的:
import re
from random import shuffle
a = open('data.txt', 'r')
s= a.read()
x = re.findall(r'\<([^>]+)', s)
shuffle(x)
f = re.sub(r'\<([^>]+)', x[0], s)
print(f)
最佳答案
让你的尝试发挥作用:
x = re.findall(r'(<[^>]+)', s)
shuffle(x)
f = re.sub(r'(<[^>]+)', lambda _: x.pop(), s)
我喜欢如何做:
x = re.split(r'(<[^>]+)', s)
y = x[1::2]
shuffle(y)
x[1::2] = y
f = ''.join(x)
关于python - 使用正则表达式随机化 "<"和 ">"符号之间定义的元素位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73513298/