On Sat, Apr 18, 2015 at 06:56:41PM -0700, Jim Mooney wrote: > Where could I download Python sample dictionaries on different subjects. > They're hard to type and I can only do small, limited ones to practice with.
I don't think you can download Python dicts. It would be a bit hard, since Python dicts exist only while the Python interpreter is running. Normally data is provided in text form, and then read from a file and converted into a dict or list as needed. If you search the internet, you will find lots of places that you can download data on various topics. You can start at Wikidata: https://www.wikidata.org/ http://en.wikipedia.org/wiki/Wikidata But for simple experiments, there is an easier solution. Instead of typing the dicts yourself, create them programmatically! Let's say I want a dict like: {'a': 1, 'b': 2, 'c': 3, ... 'z': 26} That would be a PITA to type out in full. But I can do this: import string pairs = zip(string.ascii_lowercase, range(1, 27)) d = dict(pairs) zip is invaluable for this sort of thing, because it takes two (or more) independent sequences and "zips" them together into a single sequence of pairs. So zip('abcde...z', [1, 2, 3, 4, 5, ..., 26]) ends up as the sequence [('a', 1), ('b', 2), ('c', 3), ... ] which is exactly what dict() needs to build a dictionary. Here's another example: from random import random d = dict((n, random()) for n in range(10000)) This uses a *generator expression* to provide a sequence of (key, value) pairs, where the keys are numbers 0, 1, 2, ... and the values are random floats. You might have seen list comprehensions: [x**2+1 for x in range(15)] for example. Generator expressions are similar, except they don't calculate the items up front into a list, they calculate them lazily only when needed. To turn a list comprehension into a generator expression, change the outer-most square brackets [ ] into round brackets: (x**2+1 for x in range(15)) In Python 3, we also have *dict comprehensions* which are based on list comprehensions: d = {n: random() for n in range(10000)} So my advice is this: rather than look for somebody to provide you with ready-made dicts, learn how to assemble them yourself! # dict of {name: age} pairs names = 'Fred Wilma Barney Betty Homer Marge'.split() ages = [35, 31, 34, 36, 30] d = dict(zip(name, ages)) -- Steve _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: https://mail.python.org/mailman/listinfo/tutor