-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 に答える