From 36ca71bfb13cd38dc2792d45173d2e695b705bf4 Mon Sep 17 00:00:00 2001 From: jbranchaud Date: Fri, 8 Nov 2024 09:16:45 -0600 Subject: [PATCH] Add Store And Access Immutable Data In A Tuple as a Python TIL --- README.md | 3 +- ...re-and-access-immutable-data-in-a-tuple.md | 49 +++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) create mode 100644 python/store-and-access-immutable-data-in-a-tuple.md diff --git a/README.md b/README.md index b77fa53..57aa2d3 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1500 TILs and counting..._ +_1501 TILs and counting..._ --- @@ -885,6 +885,7 @@ _1500 TILs and counting..._ - [Access Instance Variables](python/access-instance-variables.md) - [Create A Dummy DataFrame In Pandas](python/create-a-dummy-dataframe-in-pandas.md) +- [Store And Access Immutable Data In A Tuple](python/store-and-access-immutable-data-in-a-tuple.md) - [Test A Function With Pytest](python/test-a-function-with-pytest.md) - [Use pipx To Install End User Apps](python/use-pipx-to-install-end-user-apps.md) diff --git a/python/store-and-access-immutable-data-in-a-tuple.md b/python/store-and-access-immutable-data-in-a-tuple.md new file mode 100644 index 0000000..a29449f --- /dev/null +++ b/python/store-and-access-immutable-data-in-a-tuple.md @@ -0,0 +1,49 @@ +# Store And Access Immutable Data In A Tuple + +You can store heterogeneous data (of varying types) as a _tuple_ which is a +light-weight immutable data structure. + +You can be explicit about the tuple by wrapping the items in parentheses: + +```python +>>> book = ('An Immense World', 'Ed Yong', 2022) +``` + +Though it is also possible to comma-separate the items and forego the +parentheses. + +```python +>>> book2 = 'The Shining', 'Stephen King', 1977 +>>> book2 +('The Shining', 'Stephen King', 1977) +``` + +Once we have our tuple, we can access any item from it positionally. We can +also use _sequence unpacking_ to assign the values to a series of variables: + +```python +>>> book[0] +'An Immense World' +>>> book[1] +'Ed Yong' +>>> book[2] +2022 +>>> title, author, publication_year = book +>>> title +'An Immense World' +>>> author +'Ed Yong' +>>> publication_year +2022 +``` + +And, as promised, it is immutable (unlike lists): + +```python +>>> book[1] = 'Agatha Christie' +Traceback (most recent call last): + File "", line 1, in +TypeError: 'tuple' object does not support item assignment +``` + +[source](https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences)