В Python существует ли реализация 'мультикарты'?

@superjoe30 Да, absoluteley. Как только Вы начинаете использовать управление версиями, Вы никогда не возвращаетесь. Я использую его для всего, даже моя "домашняя" папка.

@Orion Подрывная деятельность Edwards не требует сервера. Можно получить доступ к локальному репозиторию непосредственно (через клиент, конечно), и нет никакого включенного серверного процесса.

66
задан Martijn Pieters 1 September 2016 в 15:06
поделиться

2 ответа

В стандартной библиотеке такого нет. Вы можете использовать defaultdict :

>>> from collections import defaultdict
>>> md = defaultdict(list)
>>> md[1].append('a')
>>> md[1].append('b')
>>> md[2].append('c')
>>> md[1]
['a', 'b']
>>> md[2]
['c']

(Вместо list вы можете использовать набор , и в этом случае вы должны позвонить . добавьте вместо .append .)


В качестве отступления : посмотрите на эти две строки, которые вы написали:

a[1] = 'a'
a[1] = 'b'

Кажется, это указывает на то, что вам нужно выражение a [1] равняется двум различным значениям. Это невозможно со словарями, потому что их ключи уникальны, и каждый из них связан с одним значением. Однако вы можете извлекать все значения внутри списка, связанного с данным ключом, одно за другим. Для этого вы можете использовать iter с последующими последовательными вызовами next . Или вы можете просто использовать две петли: Если да, то вам нужно использовать словарь. Если нет - вам нужно использовать словарь списков (как уже предлагалось)

-4
ответ дан 24 November 2019 в 14:59
поделиться

Этого нет в стандартной библиотеке. Вы можете использовать defaultdict :

>>> from collections import defaultdict
>>> md = defaultdict(list)
>>> md[1].append('a')
>>> md[1].append('b')
>>> md[2].append('c')
>>> md[1]
['a', 'b']
>>> md[2]
['c']

(Вместо list вы можете использовать set , и в этом случае вы должны вызвать . добавьте вместо .append .)


В стороне : посмотрите на эти две строки, которые вы написали:

a[1] = 'a'
a[1] = 'b'

Кажется, это означает, что вам нужно выражение a [1] равняться двум различным значениям. Это невозможно со словарями, потому что их ключи уникальны, и каждый из них связан с одним значением. Однако вы можете извлекать все значения из списка, связанного с данным ключом, одно за другим. Для этого вы можете использовать iter с последующими последовательными вызовами next . Или вы можете просто использовать два цикла:

>>> for k, v in md.items():
...     for w in v:
...         print("md[%d] = '%s'" % (k, w))
... 
md[1] = 'a'
md[1] = 'b'
md[2] = 'c'
112
ответ дан 24 November 2019 в 14:59
поделиться
Другие вопросы по тегам:

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