Вход:Изменить значение, которое является ключевым в том же словаре: Python
oldNames = { 'Fruits':['orange', 'Banana', 'Peach', 'mango', 'raspberries']
'Meat': ['Bacon', 'Chicken', 'Ham', 'Steak']
'Food': ['Fruits', 'Rice', 'Beans', 'Meat'] }
Пример кода:
oldNames = {} # Defining the dictionary I am creating from the file
newNames = {} # Defining another dictionary where I am planning to change the values
Keys_ = [] # Defining the list to append new values for new dictionary
Values_ = []
def dict_parse():
infiles = [f for f in os.listdir(path) if f.endswith('.pin')] # First few lines gets the match fromt he input file
for infile in infiles:
with open(path + '/' + infile, 'r') as inFile:
infileContents = inFile.read()
PATTERN = re.compile(r'Group (\w+)\s+([^\n]+)\s*\{(.*?)\}', re.DOTALL);
for match in PATTERN.finditer(infileContents):
keyname = match.group(1).strip()
elements = match.group(3).replace(',', '').split()
oldNames[keyname] = elements # I get the correct dictionary values until here.
for keyname, elements in oldNames.items(): # iterating over the keys and values of existing dict
for element in elements: # iterating over values
if (element in oldNames[keyname]): # condition to check if vlaue is a key
newNames = {}
for i in range(len(oldNames[keyname])):
Values_.append(oldNames[keyname][i]) # This part is wrong but not sure how to modify
newNames= dict((k,v) for k,v in (oldNames[keyname], Values_)) # This is not the correct format to form the dict I guess...
else:
newNames = dict((k,v) for k,v in oldNames[keyname])
print new_pinNames["Food"]
if __name__ =='__main__':
dict_parse()
У меня есть значения в виде списка. Я использую for loop
для перебора списка значений и другого for loop
для повторения значений совпадающих ключей. Мне нужен вывод в виде единого списка со значениями замененных ключей и находится в том же положении, что и раньше. Отправленный образец для справки.
Я распечатываю один ключ, но мне нужен новый словарь со всеми найденными значениями и заменен.
Ожидаемый результат:
['orange', 'Banana', 'Peach', 'mango', 'raspberries', 'Rice', 'Beans', 'Bacon', 'Chicken', 'Ham', 'Steak']
Ссылка:
Used this : [This](http://stackoverflow.com/questions/3162166/python-looping-over-one-dictionary-and-creating-key-value-pairs-in-a-new-dictio)
Вы забыли запятые в вашем словаре. –