Search Results

Search found 3 results on 1 pages for 'fromkeys'.

Page 1/1 | 1 

  • python dict.fromkeys() returns empty

    - by slooow
    I wrote the following function. It returns an empty dictionary when it should not. The code works on the command line without function. However I cannot see what is wrong with the function, so I have to appeal to your collective intelligence. def enter_users_into_dict(userlist): newusr = {} newusr.fromkeys(userlist, 0) return newusr ul = ['john', 'mabel'] nd = enter_users_into_dict(ul) print nd It returns an empty dict {} where I would expect {'john': 0, 'mabel': 0}. It is probably very simply but I don't see the solution.

    Read the article

  • Unwanted behaviour from dict.fromkeys

    - by Anthony Labarre
    Hi there, I'd like to initialise a dictionary of sets (in Python 2.6) using dict.fromkeys, but the resulting structure behaves strangely. More specifically: >>>> x = {}.fromkeys(range(10), set([])) >>>> x {0: set([]), 1: set([]), 2: set([]), 3: set([]), 4: set([]), 5: set([]), 6: set([]), 7: set([]), 8: set([]), 9: set([])} >>>> x[5].add(3) >>>> x {0: set([3]), 1: set([3]), 2: set([3]), 3: set([3]), 4: set([3]), 5: set([3]), 6: set([3]), 7: set([3]), 8: set([3]), 9: set([3])} I obviously don't want to add 3 to all sets, only to the set that corresponds to x[5]. Of course, I can avoid the problem by initialising x without fromkeys, but I'd like to understand what I'm missing here.

    Read the article

  • Odd nested dictionary behavior in python

    - by adept
    Im new two python and am trying to grow a dictionary of dictionaries. I have done this in php and perl but python is behaving very differently. Im sure it makes sense to those more familiar with python. Here is my code: colnames = ['name','dob','id']; tablehashcopy = {}; tablehashcopy = dict.fromkeys(colnames,{}); tablehashcopy['name']['hi'] = 0; print(tablehashcopy); Output: {'dob': {'hi': 0}, 'name': {'hi': 0}, 'id': {'hi': 0}} The problem arises from the 2nd to last statement(i put the print in for convenience). I expected to find that one element has been added to the 'name' dictionary with the key 'hi' and the value 0. But this key,value pair has been added to EVERY sub-dictionary. Why? I have tested this on my ubuntu machine in both python 2.6 and python 3.1 the behaviour is the same.

    Read the article

1