Logo
  • Ubuntu
  • CentOS
  • Debian
  • Fedora
  • RedHat

Python Tuples - DesignLinux

designlinux 0 Comments

Python has several sequential data types that allow you to store collections of data in an organized and efficient way. The basic sequence types are strings, lists, tuples, and range objects.

This article will walk you through the basics of Python tuples. We’ll show you how to create a tuple, access elements, unpack a tuple, and more.

Tuples are similar to lists , with the main difference being that the lists are mutable while the tuples are immutable. This means that the tuples can not be changed after creation.

Tuples can store both heterogeneous and homogeneous data but are generally used to store collections of heterogeneous elements.

Creating Tuples #

Tuples are created by placing the items inside a pair of round brackets [], separated by commas. They can have any number of items, which can be of different types. Here is an example:

colors = ('orange', 'white', 'green')

A tuple can have items with mixed data types. You can also declare nested tuples where one more more of its items are lists, tuples or dictionaries:

my_tuple = (1, False, ["red", "blue"], ("foo", "bar"))

Round brackets with no elements in between them denote an empty tuple:

my_tuple = ()

To create a tuple with only one element you must add a comma after the element:

my_tuple = (1)
type(my_tuple)
my_tuple = (1,)
type(my_tuple)
<class 'int'>
<class 'tuple'>

Tuples can be also constructed using the tuple() constructor:

colors_list = ['orange', 'white', 'green']
colors_typle = tuple(colors_list)
print(type(colors_typle))
<class 'tuple'>

Another way to construct a tuple is to use the tuple packing feature, which allows you create a tuple from a sequence of comma-separated objects:

directions = "North", "South", "East", "West"
print(type(directions))
<class 'tuple'>

Accessing Tuple Elements #

A tuple item can be referenced by its index. Indexes are integers and starts from 0 to n-1 where n is the number of items:

my_tuple = ["a", "b", "c", "d"]
             0    1    2    3

In Python indexes are specified with square brackets:

my_tuple[index]

For example to access the third element of the tuple, you would tuple_name[2]:

directions = ("North", "South", "East", "West")directions[2]
'East'

If you reference an index that doesn’t exist, an IndexError exception is raised:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: tuple index out of range

To access items in a nested tuple use multiple indexes:

my_tuple = (1, False, ["red", "blue"], ("foo", "bar"))my_tuple[3][1]
'bar'

You can also access the tuple elements using negative indexes. The last item is referred to as -1, the second last item as -2 and so on:

my_tuple = ("a", "b", "c", "d")
            -4   -3   -2   -1
directions = ("North", "South", "East", "West")directions[-2]
'East'

Slicing Tuples #

In Python, you can slice a tuple and other sequential data types using the following form:

sequence[start:stop:step]
  • start is the index at which the extraction begins. When a negative index is used, it indicates an offset from the end of the tuple. If this argument is omitted, slicing begins from index 0.
  • stop is the index before which to end extraction; the result doesn’t include the “stop” element. When a negative index is used, it indicates an offset from the end of the tuple. If this argument is omitted or greater than the length of the tuple, slicing goes to the end of the tuple.
  • step is an optional argument and specifies the step of the slicing. When not specified, it defaults to 1. If a negative value is used, the slice takes elements in reverse order.

The result of slicing a tuple is a new tuple containing the extracted elements.

The following forms are legal in Python:

T[:] # copy whole tuple
T[start:] # slice the tuple starting from the element with index "start" to the end of the tuple.
T[:stop] # slice the tuple starting from the begging up to but not including the element with index "stop".
T[start:stop] #  slice the tuple starting from the element with index "start" up to but not including the element with index "stop".
stop"
T[::step] # slice the tuple with a stride of "step"

Below is an example of how to slice a tuple starting from the element with index 1 up to but not including the element with index 4:

vegetables = ('Potatoes', 'Garlic', 'Celery', 'Carrots', 'Broccoli')vegetables[1:4]
('Garlic', 'Celery', 'Carrots')

Unpacking Tuples #

Sequence unpacking in a Python feature that allows you to take assign sequence objects to variables. Here is an example:

colors = ('orange', 'white', 'green')
a, b, c = colors
print(a)
print(b)
print(c)

The values of the tuple elements according to their position, are assigned to the variables on the left:

orange
white
green

When unpacking tuples, the number of variables on the left side tuple must be the same as the number of the tuple elements. Otherwise, you’ll get a ValueError exception.

colors = ('orange', 'white', 'green')
a, b = colors
ValueError: too many values to unpack (expected 2)

Unpacking is handy when a method or function returns a sequence of objects:

def square_area_circumference(side_lenght):
  return side_lenght * side_lenght, side_lenght * 4

area, circumference = square_area_circumference(5)

print(area)
print(circumference)
25
20

Changing a Tuple #

Since tuples are immutable data structures, we can not update them directly. You can not add, change, remove elements in tuples.

If you try to change a tuple element you’ll get TypeError exception:

colors = ("orange", "white", "green")
colors[1] = "blue"
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Elements of a mutable tuple items can be changed. For example, if the tuple has a list as one of its elements, you can update the list elements:

my_tuple = (1, 2, [5, 6, 7])
my_tuple[2][1] = 4
print(my_tuple)
(1, 2, [5, 4, 7])

Tuple Length #

The built-in len() function returns the total number of items of a given object.

To find a length of a tuple, pass it as an argument to the len() function:

len(L)

Here is an example:

colors = ("orange", "white", "green")
lenght = len(colors)
print(lenght)
3

Iterating Through a Tuple #

To iterate through all elements in a tuple, you can use the for loop:

directions = ("North", "South", "East", "West")
for direction in directions:
  print(direction)
North
South
East
West

If you need indexes, you have several methods at your disposal. The most common ways are to combine the range() and len() functions or to use the built-in enumerate() function.

The example below shows how to retrieve the index and the value of each item in the tuple:

directions = ("North", "South", "East", "West")
for i in range(len(directions)):
  print("Index {} : Value {}".format(i, directions[i]))
Index 0 : Value North
Index 1 : Value South
Index 2 : Value East
Index 3 : Value West

Instead of using the range(len(...)) pattern, you can use the enumerate() function to loop over a tuple in a more Pythonic way:

directions = ("North", "South", "East", "West")
for index, value in enumerate(directions): 
  print("Index {} : Value {}".format(index, value))
Index 0 : Value North
Index 1 : Value South
Index 2 : Value East
Index 3 : Value West

Check if an Element Exists #

To check whether an element exist in a tuple, you can use the in and not in operators:

colors = ("orange", "white", "green")
print("orange" in colors)

The output will be either True or False:

True

Here is another example using the if statement :

colors = ("orange", "white", "green")
if "blue" not in colors:
  print("no")
else:
  print("yes")
no

Tuple Methods #

The tuple object accepts the following methods:

  • count(x) – Returns the number of times ‘x’ appears in the tuple.
  • index(x) – Returns the position of the first occurrence of an element with a value of ‘x’.

Below is a simple example showing how to use the methods:

my_tuple = ("a", "s", "s", "q", "a", "n")
print(my_tuple.count('a'))
print(my_tuple.index('a'))
2
0

Conclusion #

In Python, Tuples are immutable sequences of objects that can not be changed once created.

If you have any questions or feedback, feel free to leave a comment.

python

Related

Tags: python

How to Install Flask in Ubuntu 20.04

Prev Post

How to Install Webmin on Ubuntu 20.04

Next Post
Archives
  • January 2023
  • December 2022
  • November 2022
  • October 2022
  • September 2022
  • July 2022
  • June 2022
  • April 2022
  • March 2022
  • February 2022
  • January 2022
  • December 2021
  • November 2021
  • October 2021
  • September 2021
  • August 2021
  • July 2021
  • June 2021
  • May 2021
  • April 2021
  • March 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
Categories
  • AlmaLinux
  • Android
  • Ansible
  • Apache
  • Arch Linux
  • AWS
  • Backups
  • Bash Shell
  • Bodhi Linux
  • CentOS
  • CentOS Stream
  • Chef
  • Cloud Software
  • CMS
  • Commandline Tools
  • Control Panels
  • CouchDB
  • Data Recovery Tools
  • Databases
  • Debian
  • Deepin Linux
  • Desktops
  • Development Tools
  • Docker
  • Download Managers
  • Drupal
  • Editors
  • Elementary OS
  • Encryption Tools
  • Fedora
  • Firewalls
  • FreeBSD
  • FTP
  • GIMP
  • Git
  • Hadoop
  • HAProxy
  • Java
  • Jenkins
  • Joomla
  • Kali Linux
  • KDE
  • Kubernetes
  • KVM
  • Laravel
  • Let's Encrypt
  • LFCA
  • Linux Certifications
  • Linux Commands
  • Linux Desktop
  • Linux Distros
  • Linux IDE
  • Linux Mint
  • Linux Talks
  • Lubuntu
  • LXC
  • Mail Server
  • Manjaro
  • MariaDB
  • MongoDB
  • Monitoring Tools
  • MySQL
  • Network
  • Networking Commands
  • NFS
  • Nginx
  • Nodejs
  • NTP
  • Open Source
  • OpenSUSE
  • Oracle Linux
  • Package Managers
  • Pentoo
  • PHP
  • Podman
  • Postfix Mail Server
  • PostgreSQL
  • Python
  • Questions
  • RedHat
  • Redis Server
  • Rocky Linux
  • Security
  • Shell Scripting
  • SQLite
  • SSH
  • Storage
  • Suse
  • Terminals
  • Text Editors
  • Top Tools
  • Torrent Clients
  • Tutorial
  • Ubuntu
  • Udemy Courses
  • Uncategorized
  • VirtualBox
  • Virtualization
  • VMware
  • VPN
  • VSCode Editor
  • Web Browsers
  • Web Design
  • Web Hosting
  • Web Servers
  • Webmin
  • Windows
  • Windows Subsystem
  • WordPress
  • Zabbix
  • Zentyal
  • Zorin OS
Visits
  • 0
  • 687
  • 615,059

DesignLinux.com © All rights reserved

Go to mobile version