У меня есть список списка (типа int), и мне нужно вернуть первый/второй столбец и т. Д. В зависимости от ввода, указанного как индекс столбца. Любые идеи о том, как получить доступ к элементу каждой строки этого столбца? Я попытался это сделать, но все, к чему я пришел, - это использовать функцию карты, но я не знаю, как это работает. Заранее спасибоДоступ к определенному столбцу в scala
0
A
ответ
0
типы Список можно получить по номеру индекса
scala> val a=List(1,3,5,7,11,13);
a: List[Int] = List(1, 3, 5, 7, 11, 13)
scala> a(1)
res0: Int = 3
scala> a(2)
res1: Int = 5
Многомерные списки работают слишком
scala> val a=List(List(1,3,5,7,11,13), List(2,4,6,8,10,12));
a: List[List[Int]] = List(List(1, 3, 5, 7, 11, 13), List(2, 4, 6, 8, 10, 12))
scala> a
res2: List[List[Int]] = List(List(1, 3, 5, 7, 11, 13), List(2, 4, 6, 8, 10, 12))
scala> a(1)
res3: List[Int] = List(2, 4, 6, 8, 10, 12)
scala> a(1)(2)
res4: Int = 6
обновление, чтобы ответить на комментарий, функцию, которая принимает список списков Ints и а номер столбца
scala> val a=List(List(1,3,5,7,11,13), List(2,4,6,8,10,12), List(0,10,20,30,40,50,60));
a: List[List[Int]] = List(List(1, 3, 5, 7, 11, 13), List(2, 4, 6, 8, 10, 12), List(0, 10, 20, 30, 40, 50, 60))
scala> def getcol(l: List[List[Int]], n: Int) = (for (i <- l) yield i(n)).toList
getcol: (l: List[List[Int]], n: Int)List[Int]
scala> getcol(a,0)
res17: List[Int] = List(1, 2, 0)
scala> getcol(a,1)
res18: List[Int] = List(3, 4, 10)
0
Один вариант:
def getColumn[T](list: List[List[T]], column: Int): List[T] = {
list.map(row => row(column))
}
Тогда:
scala> val l = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
l: List[List[Int]] = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
scala> getColumn(l, 2)
res0: List[Int] = List(3, 6, 9)
0
val nums = List(List(1,2,3),List(4,5,6))
nums map(_(1)) // gives List(2,5)
Или в методе с параметром colIndex:
def sliceCol[T](ls: List[List[T]], colIndex: Int): List[T] =
ls map(_(colIndex))
sliceCols(1) // same result
+0
long-hand is: num map (x => x (index)). 'Для каждой записи в num (список [Int]) сопоставьте ее с новым значением val, обратившись к одному из его элементов через индекс'. Короткая комбинация: _ вводит новую переменную в этой точке (x) & whacks 'x =>' перед выражением. –
Смежные вопросы
- 1. Доступ к определенному столбцу в PHP
- 2. Доступ к столбцу матрицы
- 3. Как получить доступ к определенному столбцу в режиме сетки?
- 4. Доступ к определенному столбцу/строке и сравнение с другим (C++)
- 5. Доступ к определенному столбцу с использованием Eloquent & Laravel
- 6. применить strsplit к определенному столбцу в data.frame
- 7. Доступ к настраиваемому диспетчеру, определенному в application.conf внутри знака Scala
- 8. Как добавить к определенному столбцу listview
- 9. if function macro - приводит к определенному столбцу
- 10. Прокрутите ng-сетку к определенному столбцу
- 11. Для цикла, идущего к определенному столбцу
- 12. PHP/SQL, равный определенному столбцу
- 13. Rails: сортировать по определенному столбцу
- 14. Сортировка строки по определенному столбцу
- 15. Доступ к определенному адресу памяти
- 16. Доступ к определенному выпадающему списку
- 17. Доступ к определенному элементу DOM
- 18. Доступ к определенному элементу массива
- 19. Доступ к определенному элементу array()
- 20. VB.NET Как применить десятичное форматирование к определенному столбцу в Gridview?
- 21. R - Применить функцию к определенному столбцу в списке аналогичных data.frames
- 22. Как применить изменения к определенному столбцу в файле CSV?
- 23. Подготовка текста к определенному столбцу в файле с разделителями табуляции?
- 24. Доступ к индексу в списке в Scala
- 25. Как получить доступ к столбцу в подзапросе?
- 26. Доступ к индексу определенной ячейки в Scala
- 27. Как перегородку в куст по определенному столбцу?
- 28. Как сортировать по определенному столбцу в Datatables?
- 29. Раскрывающийся фильтр по определенному столбцу в DataTable
- 30. Параллельный доступ к объектам S3 в Scala
Параметр 'Метод map' на список запускает функцию один раз для каждого элемента списка и создает новый список, который будет содержать результаты каждого вызова функции. Здесь функция 'row => row (column)', в которой говорится: «Принимайте один параметр с именем« row », и для каждого значения вызывается метод' apply' с 'column' в качестве параметра" (строка кода ' column) 'равнозначно' row.apply (column) '). Поскольку мы работаем со списком списков, 'строка' будет установлена для каждого подсписка по очереди, а' строка (столбец) 'является простым доступом к элементу списка - когда' column' равно 2, он возвращает третий элемент список. –