определить словарь в Python, как они делают в Ruby

1

Мне нужно преобразовать этот код Ruby в Python:

dicts = Hash.new { |h,k| h[k] = [] }

Я новичок в Python и никогда не изучал Ruby. Но я читал некоторые документы, и я думаю, что в Python это должно выглядеть примерно так:

dicts = {}.setdefault(k, [])

Но я не уверен. Не могли бы вы мне помочь?

Теги:

2 ответа

2

Из документов Ruby:

# While this creates a new default object each time
h = Hash.new { |hash, key| hash[key] = "Go Fish: #{key}" }
h["c"]           #=> "Go Fish: c"
h["c"].upcase!   #=> "GO FISH: C"
h["d"]           #=> "Go Fish: d"
h.keys           #=> ["c", "d"]

Таким образом, эквивалент python для вашего сценария заключается в использовании defaultdict следующим образом:

from collections import defaultdict

dicts = defaultdict(list)
print(dicts['any_key']) #[]
0

Просто {'k': []} дает словарь, где 'k' сопоставляется с пустым списком.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню