Как соответствовать пустому словарю?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как соответствовать пустому словарю?

Сообщение Anonymous »

Python поддерживает сопоставление структурных шаблонов с момента версии 3.10 .
я заметил, что сопоставление пустого DICT не работает, просто сопоставляя {} , как это происходит для списка s.
Согласно моему наивному подходу, неэмпт sy-prey (python 3.10.4. PrettyPrint-Override ">

Код: Выделить всё

def match_empty(m):
match m:
case []:
print("empty list")
case {}:
print("empty dict")
case _:
print("not empty")
< /code>
match_empty([])           # empty list
match_empty([1, 2])       # not empty
match_empty({})           # empty dict
match_empty({'a': 1})     # empty dict
< /code>
Сопоставление конструкторов даже нарушает пустое сопоставление списка: < /p>
def match_empty(m):
match m:
case list():
print("empty list")
case dict():
print("empty dict")
case _:
print("not empty")
< /code>
match_empty([])           # empty list
match_empty([1, 2])       # empty list
match_empty({})           # empty dict
match_empty({'a': 1})     # empty dict
< /code>
Вот решение, которое работает так, как я ожидаю: < /p>
def match_empty(m):
match m:
case []:
print("empty list")
case d:
if isinstance(d, dict) and len(d) == 0:
print("empty dict")
return
print("not empty")
< /code>
match_empty([])           # empty list
match_empty([1, 2])       # not empty
match_empty({})           # empty dict
match_empty({'a': 1})     # not empty
Теперь мои вопросы:

Почему мои первые 2 подходы не работают (как и ожидалось)?>

Подробнее здесь: https://stackoverflow.com/questions/753 ... dictionary
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Отправка загруженного файла из JS в Python CGI всегда приводит к пустому словарю.
    Гость » » в форуме Python
    0 Ответы
    76 Просмотры
    Последнее сообщение Гость
  • Отправка загруженного файла из JS в Python CGI всегда приводит к пустому словарю.
    Гость » » в форуме Javascript
    0 Ответы
    61 Просмотры
    Последнее сообщение Гость
  • Не применяется ли преобразование lvalue в rvalue к пустому объекту класса, переданному по значению?
    Anonymous » » в форуме C++
    0 Ответы
    31 Просмотры
    Последнее сообщение Anonymous
  • Рекурсия Python приводит к пустому списку
    Гость » » в форуме Python
    0 Ответы
    47 Просмотры
    Последнее сообщение Гость
  • Вставка GUID в поле «uniqueidentifier» в SQL Server приводит к пустому guid.
    Anonymous » » в форуме C#
    0 Ответы
    91 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»