Что эквивалентно распознаванию списков, наборов и карт Python в Kotlin?

В Python есть генераторы списков и аналогичные конструкции для карт и наборов. В Kotlin вообще ничего нет ни в одной документации с подобным названием.

Каковы эквиваленты этих понятий? Например, те, которые можно найти в Python 3 Patterns, Recipes and Идиомы. Что включает в себя понимание для:

  • список
  • набор
  • Словарь

Примечание. этот вопрос намеренно написан и на него отвечает автор (самостоятельные вопросы), так что идиоматические ответы на часто задаваемые темы Kotlin присутствуют в SO.


person Jayson Minard    schedule 14.05.2018    source источник
comment
Вопросы в форме того, что является эквивалентом функции языка X в языке Y, не требуют, чтобы с ним были связаны какие-либо языковые теги X.   -  person cs95    schedule 14.05.2018


Ответы (2)


val newls = (1..100).filter({it % 7 == 0})

в Kotlin эквивалентен следующему коду Python

newls = [i for i in 0..100 if i % 7 ==0]
person princebillyGK    schedule 07.09.2020

person    schedule
comment
Очень хороший ответ, @Jayson! Небольшой вопрос: вы используете .map { it } в паре мест - можно ли его опустить? - person Tom; 16.08.2019
comment
@Tom Это преобразование итерации диапазона в список элементов в диапазоне. Я думаю, что в то время я пытался сделать его ленивым при выходе из итератора, но map все равно преобразуется в список, поэтому я редактирую приведенные выше примеры, чтобы иметь toList() - person Jayson Minard; 17.08.2019
comment
Я сделал другие небольшие исправления, чтобы сделать его более современным. - person Jayson Minard; 17.08.2019