Pythonです。

```

    data = [
        ['8',  '6', '7'],
        ['5',  '0', '8'],
        ['2', '12', '4'],
        ['0',  '7', '9']
    ]
    
    
```

このデータに対して、

```

    ['8','8','12','9']
    
```

というように出力したいのですが、一番最後の要素が取り出せず、1つ前の要素が出力されます。

以下はプログラムです。

```

    def find_max(data,begin,end):      
         for a in data[begin-1]:
             data1 = sorted(data[begin-1],reverse = True)
                        
             begin+=1
             result =data1[0]
             print(result)
         return result
    
```
CC BY-SA 4.0
2022-07-29T00:49:14.777
90260
2022-07-29T02:42:32.637
2022-07-29T02:42:32.637
question
python
2次元配列のそれぞれの要素の0番目の値をリストに入れたい
質問に書かれた内容から推測される意図する処理に、`begin`や`end`のパラメータが必要とは思えないのですが。

`begin`や`end`は、以前の質問で使用した名残りであって、今回の質問には不要では無いですか？  
[二次元配列の行・列の抽出](https://ja.stackoverflow.com/q/90237/26370)

質問内容から推測される「指定された2次元配列の各行の最大値を抽出してリストにしたい」のなら、この処理で出来るでしょう。

```

    data = [
        ['8',  '6', '7'],
        ['5',  '0', '8'],
        ['2', '12', '4'],
        ['0',  '7', '9']
    ]
    
    data = [str(max(map(int,row))) for row in data]
    
```

文字列のまま比較すると(1オリジンで)3行目は最大値が`4`になってしまうので、いったん`int`に変換してから処理しています。

* * *

@metropolis さんの回答の方が簡潔でしたね。  
pythonだと色んな機能が組み合わされている場合があるのに気が付いていませんでした。  
[max(iterable, *[, key,
default])](https://docs.python.org/ja/3/library/functions.html#max)
CC BY-SA 4.0
2022-07-29T01:50:49.793
90262
2022-07-29T02:12:18.040
2022-07-29T02:12:18.040
26370
26370
90260
answer
```

    data = [
        ['8',  '6', '7'],
        ['5',  '0', '8'],
        ['2', '12', '4'],
        ['0',  '7', '9']
    ]
    
    print([max(r, key=int) for r in data])
    
```
CC BY-SA 4.0
2022-07-29T02:01:00.707
90263
2022-07-29T02:01:00.707
47127
90260
answer