Синтаксис для многократного повторения?

Часть меня удивляется, если вы могли бы предоставить свою собственную функцию санитарии так же просто, как это:

$value = preg_replace('/[^a-zA-Z_]*/', '', $value);

Я действительно не продумал это, но кажется, что удаление чего-либо, кроме символов и подчеркиваний может работать.

-1
задан PyRulez 16 January 2019 в 01:02
поделиться

2 ответа

Нет, нет более краткого синтаксиса, потому что то, о чем вы просите, - это очень нишевый случай, а не тот, для которого Python решает оказать особую поддержку.

0
ответ дан Amber 16 January 2019 в 01:02
поделиться

Я не полностью слежу за комментариями, но itertools.tee может дать мне несколько итераций:

In [518]: g1,g2,g3 = itertools.tee((i for i in range(10)), 3)
In [519]: min(g1), max(g2)
Out[519]: (0, 9)
In [520]: a = 0
In [521]: while a<10:
     ...:     a += next(g3)      # simulate an infinite sequence
     ...:     
In [522]: a
Out[522]: 10
In [523]: list(g3)
Out[523]: [5, 6, 7, 8, 9]

Или без распаковки:

def foo(g):
    a=0
    while a<12:
        a += next(g)
    return (a, list(g))

In [525]: alist = itertools.tee((i for i in range(10)),3)
     ...: flist = [min, max, foo]
     ...: for f,a in zip(flist, alist):
     ...:     print(f(a))
0
9
(15, [6, 7, 8, 9])

(используется Py3)

0
ответ дан hpaulj 16 January 2019 в 01:02
поделиться
Другие вопросы по тегам:

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