-1

我的代码如下

for i in re.finditer('someinteger(.+?)withanother(.+?)', html):
    x = i.group(1)
    y = i.group(2)

这里 x 和 y 相互关联。如果我想在数组或其他东西中对它们进行索引并根据 x 对索引进行排序,我该如何处理。考虑到索引长度只有 4 或 5。含义 (i) 将循环最多 4-5 次。

快速代码会有所帮助。多阵列没有线索。

4

1 回答 1

3

您可以首先将值检索到列表中。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]))
于 2013-07-02T12:07:16.560 回答