Home > Backend Development > Python Tutorial > Does Python Have a Built-in Ordered Set Data Structure?

Does Python Have a Built-in Ordered Set Data Structure?

Linda Hamilton
Release: 2024-12-16 18:02:13
Original
493 people have browsed it

Does Python Have a Built-in Ordered Set Data Structure?

Python's Ordered Data Structures

Python provides a range of ordered data structures, including the ordered dictionary. However, a question arises: does Python also feature an ordered set?

Absence of Built-in Ordered Set

Unlike ordered dictionaries, Python does not have a built-in ordered set type. This omission can be attributed to the fact that sets inherently maintain unordered collections of unique elements.

Emulating Ordered Sets in Python 3.7

Nevertheless, starting from Python 3.7, you can employ the standard library's dict to impersonate an ordered set. By creating a dict with only keys (and values set to None), you can achieve the desired functionality.

keywords = ['foo', 'bar', 'bar', 'foo', 'baz', 'foo']

ordered_keywords = list(dict.fromkeys(keywords))
print(ordered_keywords)
# Output: ['foo', 'bar', 'baz']
Copy after login

This approach effectively filters out duplicate items while preserving the order, mimicking the behavior of an ordered set.

Alternative for Older Python Versions

If using a Python version prior to 3.7, you can leverage the collections.OrderedDict to achieve similar ordered set functionality.

The above is the detailed content of Does Python Have a Built-in Ordered Set Data Structure?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template