Блоґ одного кібера

Історія хвороби контуженого інформаційним вибухом

Posts Tagged ‘scala

Scala partition в Python

with 8 comments

Вперше сьогодні в мене був момент “А якби я писав на Scala…”. Задача – є список з мухами і котлетами вкупі. Треба мухи окремо, котлети окремо.

В Python класично це так:

Frikadellen = [x for x in AllesZusammen if IstFrikadelle(x)]
Fliegen = [x for x in AllesZusammen if not IstFrikadelle(x)]

В Scala:

(Frikadellen, Fliegen) = AllesZusammen partition IstFrikadelle

Scala, окрім того що коротша, виграє тим що проходиться по списку лише раз.

Але StackOverflow як завжди дає жару:

Frikadellen, Fliegen = [], []
for x in AllesZusammen:
    (Fliegen, Frikadellen)[IstFrikadelle(x)].append(x)
    # або
    # (Frikadellen if IstFrikadelle(x) else Fliegen).append(x)

Це вже краще, але все одно було б добре якби до списку додали метод partition. Може б то Ґвідо поскаржитись?

Written by bunyk

27 Лютого, 2015 at 00:04

Опубліковано в Кодерство

Tagged with ,