Подчеркивание _ как имя переменной в Python [дубликат]

^(?:(\d+)\.)?(?:(\d+)\.)?(\*|\d+)$

, Возможно, более краткий мог быть:

^(?:(\d+)\.){0,2}(\*|\d+)$

Это может тогда быть улучшено к 1.2.3.4.5.* или ограниченный точно X.Y.Z, использующим * или {2} вместо {0,2}

64
задан Bhargav Rao 22 February 2019 в 04:51
поделиться

3 ответа

Ага, _ - традиционное название для «безразлично» (что, к сожалению, противоречит его использованию в I18N, но это отдельная проблема ;-). Кстати, в сегодняшнем Python вместо:

_,s = min( (len( values[s]), s) 
            for s in squares 
            if len(values[s]) > 1
        )

вы можете кодировать

s = min((s for s in squares if len(values[s])>1), 
        key=lambda s: len(values[s]))

(не уверен, для какой версии Python писал Питер, но идиома, которую он использует, является примером «decorate-sort-undecorate» [[DSU] ] за исключением min вместо sort, а в сегодняшнем Python необязательный параметр key = обычно является лучшим способом выполнения DSU; -).

70
ответ дан 24 November 2019 в 15:58
поделиться

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

Offtopic: Эта статья Норвига очень хороша. Рекомендуемое чтение.

9
ответ дан 24 November 2019 в 15:58
поделиться

Ваша интерпретация верна. Вне специального значения в интерактивном режиме _ используется просто как имя переменной «безразлично», особенно при распаковке.

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

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