あなたの代入では様々なインスタンス化が可能なので、その一つを紹介しよう。以下のジェネレータは、数値のリストを受け取り、各非厳密極値に対してペア(i, x)を生成します。ここで、xは極値の値であり、iは元のリストの対応するインデックス（argmaxまたはargmin）です。

```python
def local_extrema(data):
    for i, x in enumerate(data):
        if 0 < i < len(data) - 1:
            if data[i - 1] <= x >= data[i + 1] or data[i - 1] >= x <= data[i + 1]:
                yield i, x
```

(argmaxとargmin)：

```python
data = [1, 2, 3, 2, 5, 5, 3, 2, 10]
for i, x in local_extrema(data):
    print(i, "->", x)
```

期待される出力：

```
2 -> 3
3 -> 2
4 -> 5
5 -> 5
7 -> 2
```

この実装はあなたに適していますか。それとも何かを変更する必要がありますか？
Поскольку ваше задание допускает разные конкретизации, позвольте представить вам одну из них. Приведённый ниже генератор принимает список чисел и выдаёт для каждого нестрогого экстремума пару (i, x), где x — значение экстремума, а i — соответствующий ему индекс исходного списка (argmax или argmin).

```python
def local_extrema(data):
    for i, x in enumerate(data):
        if 0 < i < len(data) - 1:
            if data[i - 1] <= x >= data[i + 1] or data[i - 1] >= x <= data[i + 1]:
                yield i, x
```

Пример использования:

```python
data = [1, 2, 3, 2, 5, 5, 3, 2, 10]
for i, x in local_extrema(data):
    print(i, "->", x)
```

Ожидаемый вывод:

```
2 -> 3
3 -> 2
4 -> 5
5 -> 5
7 -> 2
```

Подходит ли вам такая реализация или нужно что-то изменить?