我的代码如下
for i in re.finditer('someinteger(.+?)withanother(.+?)', html):
x = i.group(1)
y = i.group(2)
这里 x 和 y 相互关联。如果我想在数组或其他东西中对它们进行索引并根据 x 对索引进行排序,我该如何处理。考虑到索引长度只有 4 或 5。含义 (i) 将循环最多 4-5 次。
快速代码会有所帮助。多阵列没有线索。
您可以首先将值检索到列表中。re.findall()
将自动执行此操作:
values = re.findall(r'someinteger(.+?)withanother(.+?)', html)
然后你可以对列表进行排序:
values.sort()
如果你想排序x
(在你的例子中)。
例如:
>>> s = "someinteger5withanother1someinteger4withanother2someinteger3withanother3"
>>> values = re.findall(r'someinteger(.+?)withanother(.+?)', s)
>>> values
[('5', '1'), ('4', '2'), ('3', '3')]
>>> values.sort()
>>> values
[('3', '3'), ('4', '2'), ('5', '1')]
当然你还在处理字符串,如果你想按数字排序,你要么需要做
values = [(int(x), int(y)) for x,y in values]
将它们全部转换为整数,或者做
values.sort(key=lambda x: int(x[0]))