Skip to content

Commit

Permalink
Add Store And Access Immutable Data In A Tuple as a Python TIL
Browse files Browse the repository at this point in the history
  • Loading branch information
jbranchaud committed Nov 8, 2024
1 parent 8a682e3 commit 36ca71b
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 1 deletion.
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -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..._

---

Expand Down Expand Up @@ -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)

Expand Down
49 changes: 49 additions & 0 deletions python/store-and-access-immutable-data-in-a-tuple.md
Original file line number Diff line number Diff line change
@@ -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 "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
```

[source](https://docs.python.org/3/tutorial/datastructures.html#tuples-and-sequences)

0 comments on commit 36ca71b

Please sign in to comment.