Couldnt track down a solid enough reasoning for why dictionary functions such as .values() and .keys() are considered to be O(1) in big O notation. (not sure if .items() is also considered O(1) )
Why exactly are .values() and .keys() considered O(1)?
330 Views Asked by Vanessa Ventura At
2
There are 2 best solutions below
0
Blckknght
On
It is likely that the reference you found to .keys() and .values() (and .items()) being O(1) emphasized the performance because it is a contrast to Python 2, where those functions returned lists and required O(N) time to copy references to all the relevant objects out of the dictionary.
Iterating on the view objects returned by those methods in Python 3 will still take O(N) time, as there's no way to avoid visiting each item, since that's the whole point of iteration. The keys and items views do offer O(1) membership tests (e.g. (somekey, somevalue) in somedict.items()), which is a lot more efficient than searching for an item in a list.
Related Questions in PYTHON
- How to store a date/time in sqlite (or something similar to a date)
- Instagrapi recently showing HTTPError and UnknownError
- How to Retrieve Data from an MySQL Database and Display it in a GUI?
- How to create a regular expression to partition a string that terminates in either ": 45" or ",", without the ": "
- Python Geopandas unable to convert latitude longitude to points
- Influence of Unused FFN on Model Accuracy in PyTorch
- Seeking Python Libraries for Removing Extraneous Characters and Spaces in Text
- Writes to child subprocess.Popen.stdin don't work from within process group?
- Conda has two different python binarys (python and python3) with the same version for a single environment. Why?
- Problem with add new attribute in table with BOTO3 on python
- Can't install packages in python conda environment
- Setting diagonal of a matrix to zero
- List of numbers converted to list of strings to iterate over it. But receiving TypeError messages
- Basic Python Question: Shortening If Statements
- Python and regex, can't understand why some words are left out of the match
Related Questions in PYTHON-3.X
- SQLAlchemy 2 Can't add additional column when specifying __table__
- Writes to child subprocess.Popen.stdin don't work from within process group?
- Platform Generation for a Sky Hop clone
- What's the best way to breakup a large test in pytest
- chess endgame engine in Python doesn't work perfectly
- Function to create matrix of zeros and ones, with a certain density of ones
- how to create a polars dataframe giving the colum-names from a list
- Django socketio process
- How to decode audio stream using tornado websocket?
- Getting website metadata (Excel VBA/Python)
- How to get text and other elements to display over the Video in Tkinter?
- Tkinter App - My Toplevel window is not appearing. App is stuck in mainloop
- Can I use local resources for mp4 playback?
- How to pass the value of a function of one class to a function of another with the @property decorator
- Python ModuleNotFoundError for command line tools built with setup.py
Related Questions in BIG-O
- Why is the runtime for this O(n)?
- What is the average and worst-case time complexity of my string searching algorithm?
- Complexity in Union of disjointed sets with lists
- Usage of merge in linux sort utility
- How to find big o of dependent loops and recursive functions?
- calculating number of operations in algorithm
- How to differentiate between O(n^2) and O(2^n) in dynamic programming with 2 parameters with memoization?
- Having confusion with calculating Big O complexity
- Write code to match a specific Big-O-Notation
- Error vs time complexity in big-O notation
- Time complexity of simultaneous iteration
- Time complexity for recursive binary search that also prints current subarray
- What's the Time Complexity of two separate inner loops nested in an outer loop?
- String manipulation & algorithmic complexity
- Big O notation of string permutation in Python
Related Questions in DICTVIEW
- How to compare values of two dictionaries with list comprohension?
- Why do set operators work with dict_key view objects but not the equivalent set methods?
- Why exactly are .values() and .keys() considered O(1)?
- Why does dict unioned with dict.keys() return a set?
- Why are set methods like .intersection() not supported on set-like objects?
- Python: Understanding dictionary view objects
- Comparing lists with dictviews
- Do Python 2.7 views, for/in, and modification work well together?
- dict_key and dict_value to list performances
- dictionary lookup on Python 2.7 vs 3.4
- Inconsistent behaviour between dict.items and dict.values
- dict.keys()[0] on Python 3
- python3: sum (union) of dictionaries with "+" operand raises exception
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
I am not versed in python, but I found this:
Which means that
dict.keys()and such don't return a new object, but just a thin wrapper that can iterate over the dictionary. So getting this view isO(1). Iterating over elements it's not.