#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]}
?