добавьте более 1 значения к каждому ключу в словаре на python

#python

#python

Вопрос:

допустим, у меня есть список из K элементов:

 ['0.mnet', '1.mnet', '2.mnet', '3.mnet', '4.mnet']
  

я хочу, чтобы каждый элемент был ключом в словаре,
в моем h.w, если есть ссылка между файлом и другим файлом, я хочу добавить это в свой словарь.
например:

 Page number 0
There's a link below to page 4:
<<4.mnet>>
And this here is page 3
 <<3.mnet>>
  

что я хочу получить:
{‘0.mnet’: 4, ‘0.mnet’: 3}

я чего-то не хватает в этой строке:

                     linkofpages[pages[i]] = k
  

код:

 def load_mininet(net_path):
size = 5
# list of lists, each list we have size pages, in each page we have maximal sqrt(size) of links
pages = []
linkofpages = {}
for i in range(size):
    file = net_path   str(i)   '.mnet'
    p = Path(file)
    pages.append(file)
    with p.open() as f:
        content = f.read()
        print(content)
        for k in range(size):
            if "<<"   str(k)   ".mnet>>" in content and i != k:
                print("from page", i, " to page ", k, " have a link")
                linkofpages[pages[i]] = k
print(pages)
print(linkofpages)
  

Спасибо.

Комментарии:

1. {'0.mnet': 4, '0.mnet': 3} это не словарь значений в Python. Ключи должны быть уникальными. (Если это не так, то при вводе x=linkofpages['0.mnet'] какое значение будет присвоено x ? 3?4? что-то еще?) Но почему бы не изменить свой словарь так, чтобы для каждого ключа вместо него сохранялся список связанных страниц. т.Е. {'0.mnet': [3,4]}

2. what i want to get: {'0.mnet': 4, '0.mnet': 3} У вас не может быть дубликатов ключей в dict. Поскольку вам неясно, как вы планируете это использовать, а также о варианте использования, который создает dict, мы не можем вам слишком сильно помочь.

Ответ №1:

Комментарии выше верны о том, что {'0.mnet': 4, '0.mnet': 3} это невозможно в python dict, потому что ключи должны быть уникальными.

Я бы предложил следующую альтернативу, которая может сработать для вас: Вы могли бы назначить список [3, 4] в качестве значения для ‘0.mnet’, например

 {'0.mnet', [3, 4]}
  

И вы могли бы получить доступ к обоим элементам [3, 4] путем индексации по значению:

 d['0.mnet'][1]
>>> 3
  
 d['0.mnet'][2]
>>> 4
  

Комментарии:

1. да, это то, что я хочу получить. можете ли вы сказать мне, что мне нужно для этого сделать?

2. d['0.mnet'] = [3, 4] итак, у вас есть {'0.mnet': [3, 4]} ?