
array := []int{10, 65, 21, 19, 43}
Нужно сделать массив вида (value, index):
[[10, 0], [65, 1], [21, 2], [19, 3], [43, 4]]
По сути, как в Python через enumerate:
[(v, i) for v, i in enumerate(array)]
. А потом, также как в Python отсортировать его: по value.Как также сделать в Golang?
package main
import (
"fmt"
"sort"
)
type Matrix [][]int
func main() {
data := []int{10, 65, 21, 19, 43}
var matrix [][]int
for index, value := range data {
matrix = append(matrix, []int{value, index})
}
sort.SliceStable(matrix, func(i, j int) bool {
return matrix[i][0] < matrix[j][0]
})
fmt.Println(matrix)
}
Результат:
[[10 0] [19 3] [21 2] [43 4] [65 1]]
@Golang_google