Итак, у меня есть этот словарь, который сортирует текстовый файл. Этот текстовый файл представляет собой список, ограниченный равными знаками (то есть Packagename = номер версии).Мне нужно получить ВСЕ ключи и ВСЕ значения в словаре
После разбора файла:
mydict = {}
with open('security-updates.txt') as f:
for line in f.readlines():
mykey, sep, myval = line.partition('=')
mydict[mykey] = mykey
mydict[myval] = myval
Когда я пытаюсь получить доступ к mydict[mykey]
это только возвращает в списке последний ключ. Когда я пытаюсь получить доступ к mydict[myval]
, он возвращает только последнее значение . Мне нужно иметь возможность говорить «ALL» mykey »или« ALL »myval's» в словаре. Есть ли способ сделать это?
обновленный код
mydict = {}
with open('chef-security-updates.txt') as f:
for line in f.readlines():
mykey,sep,ver_val = line.partition('=')
mydict[mykey] = myval
mydict.keys()
Это весь блок. Я выяснил, что по какой-то причине я не могу print(mydict.keys())
, но когда я установил mykeys = mydict.keys()
, я могу распечатать mykeys
. Функция печати вызывала ошибку типа. Кажется, все работает сейчас. Привет, всем, кто помогал мне.
Я не понимаю, что вы хотите сделать ... Почему бы вам просто не хранить 'mydict [mykey] = myval', а затем извлекать из него все ключи и значения, используя' mydict.keys() 'и' mydict.values () '? – stanleyli
У вас есть дубликаты ключей или значений (я бы не думал о ключах, но как насчет значений)? Если это так, вы будете перезаписывать поля в своем dict. Кроме того, вы фактически используете 'mydict [mykey]'? Если это так, 'mykey 'все еще установлен на последнее значение из цикла? Кроме того, stanleyli имеет хороший смысл в использовании словаря. – vastlysuperiorman
@stanleyli Я пробовал это, но я получаю «неподдерживаемый тип операндов для +:« dict_keys »и« str ». Все, что я сделал, это изменить код на «medicate [mykey] = myval» и снизу, я добавил заявление печати для печати ключей. (print (mydict.keys())) – jalyper