В Python, если у вас есть словарь, состоящий из списков, какCoffeeScript словарь установлен по умолчанию
mydict = {'foo': [], 'bar':[3, 4]}
, и если вы хотите добавить что-то в том, что списки можно сделать
mydict.setdefault('baz', []).append(5)
не писать
key, list_element = 'baz', 5
if key in mydict:
mydict[key].append(list_element)
else:
mydict[key] = [list_element]
есть ли эквивалент для этого в Coffeescript?
В Python то, что вы действительно хотите, вероятно, является 'collection.defaultdict (list)'. Тогда добавление значения - 'mylist ['baz']. Append (5)'. (Кроме того, 'mylist' является вводящим в заблуждение именем для dict.) – user2357112
извините, исправлено :) – oguzalb
Использование setdefault для кода Python вместо' collections.defaultdict' отлично, я действительно предпочитаю его, потому что вы все еще используете обычный так что вы получите KeyErrors при ссылке на несуществующие элементы вместо пустого списка (или что бы то ни было, что создает defaultdict). –