Почему там никакая первая (повторяемая) встроенная функция в Python?

Используйте этот код для реализации UITableview в swift:

var cell = tableView.dequeueReusableCellWithIdentifier(“cell”)
if cell == nil {
    cell = UITableViewCell(style: .Value1, reuseIdentifier: “cell”)
}
65
задан cdleary 3 July 2009 в 00:07
поделиться

3 ответа

Если у вас есть итератор, вы можете просто вызвать его метод next . Что-то вроде:

In [3]: (5*x for x in xrange(2,4)).next()
Out[3]: 10
47
ответ дан 24 November 2019 в 15:30
поделиться

В вашем вопросе есть некоторая двусмысленность. Ваше определение first и пример регулярного выражения подразумевают, что существует логический тест. Но в примере со знаменателями явно есть предложение if; так что это просто совпадение, что каждое целое число оказывается истинным.

Похоже, комбинация next и itertools.ifilter даст вам то, что вы хотите.

match = next(itertools.ifilter(None, (regex.match(big_text) for regex in regexes)))
6
ответ дан 24 November 2019 в 15:30
поделиться

Haskell использует то, что вы только что описали, поскольку функция принимает (или в качестве частичной функции взять 1 , технически). В Поваренной книге Python есть написанные оболочки-генераторы, которые выполняют те же функции, что и take , takeWhile и drop в Haskell.

Но насчет того, почему это не встроено, ваше предположение не хуже моего.

4
ответ дан 24 November 2019 в 15:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: