Dictionary Vs Lists
Values in lists are accessed by means of integers called indices, which indicate where in the list a given value is found.
Dictionaries access values by means of integers, strings, or other Python objects called keys, which indicate where in the dictionary a given value is found.
In other words, both lists and dictionaries provide indexed access to arbitrary values, but the set of items that can be used as dictionary indices is much larger than, and contains, the set of items that can be used as list indices.
Also, the mechanism that dictionaries use to provide indexed access is quite different from that used by lists. Both lists and dictionaries can store objects of any type.
Values stored in a list are implicitly ordered by their positions in the list because the indices that access these values are consecutive integers. You may or may not care about this ordering, but you can use it if desired.
Values stored in a dictionary are not implicitly ordered relative to one another because dictionary keys aren’t just numbers.
Note that if you’re using a dictionary but also care about the order of the items (the order in which they were added, that is), you can use an ordered dictionary, which is a dictionary subclass that can be imported from the collections module.
You can also define an order on the items in a dictionary by using another data structure (often a list) to store such an ordering explicitly; this won’t change the fact that basic dictionaries have no implicit (built-in) ordering.
How to use list and dictionary
In spite of the differences between them, the use of dictionaries and lists often appears to be the same.
As a start, an empty dictionary is created much like an empty list, but with curly braces instead of square brackets:
>>> x = []
>>> y = {}
Here, the first line creates a new, empty list and assigns it to x. The second line creates a new, empty dictionary and assigns it to y.
How to Assign Values Dictionary and List.
After you create a dictionary, you may store values in it as though it were a list:
>>> y[0] = 'Hello'
>>> y[1] = 'Goodbye'
Even in these assignments, there’s already a significant operational difference between the dictionary and list usage.
Trying to do the same thing with a list would result in an error because, in Python, it’s illegal to assign to a position in a list that doesn’t exist. For example, if you try to assign to the 0th element of the list x, you receive an error:
>>> x[0] = 'Hello'
Traceback (innermost last):
File "<stdin>", line 1, in ?
IndexError: list assignment index out of range
This isn’t a problem with dictionaries; new positions in dictionaries are created as necessary. Having stored some values in the dictionary, now you can access and use them:
>>> print(y[0])
Hello
>>> y[1] + ", Friend."
'Goodbye, Friend.'
All in all, this makes a dictionary look pretty much like a list. Now for the big difference. Store (and use) some values under keys that aren’t integers:
>>> y["two"] = 2
>>> y["pi"] = 3.14
>>> y["two"] * y["pi"]
This is definitely something that can’t be done with lists! Whereas list indices must be integers, dictionary keys are much less restricted; they may be numbers, strings, or one of a wide range of other Python objects.
References.
Comments
Post a Comment
Thanks for your message. We will get back you.