Borislav Hadzhiev
Wed Apr 20 2022·2 min read
Photo by Vlad Patana
The Python "TypeError: unsupported operand type(s) for -: 'tuple' and 'int'" occurs when we try to use the subtraction operator with a tuple and a number. To solve the error, figure out how the variable got assigned a tuple and correct the assignment, or access a specific value in the tuple.
Here is an example of how the error occurs.
my_tuple = 15, 30, 45 my_int = 5 # ⛔️ TypeError: unsupported operand type(s) for -: 'tuple' and 'int' result = my_tuple - my_int
We are trying to use the subtraction operator with a tuple
and a number.
tuple
object and correct the assignment.If you declared a tuple by mistake, tuples are constructed in the following ways:
()
creates an empty tuplea,
or (a,)
a, b
or (a, b)
tuple()
constructorIf you need to iterate over the tuple
and subtract from each number, use a
for
loop.
my_tuple = 15, 30, 45 my_int = 5 for num in my_tuple: result = num - my_int print(result) # 👉️ 10, 25, 40
If you need to use the subtraction operator on an item in the tuple, access the item at its specific index.
my_tuple = 15, 30, 45 my_int = 5 result = my_tuple[0] - my_int print(result) # 👉️ 10
We accessed the tuple element at index 0
and subtracted 5
from it.
If you need to get the sum of the tuple, use the sum()
function.
my_tuple = 15, 30, 45 my_int = 5 # result = my_tuple[0] - my_int result = sum(my_tuple) - my_int print(result) # 👉️ 85 print(sum(my_tuple)) # 👉️ 90
The sum function takes an iterable, sums its items from left to right and returns the total.
The sum
function takes the following 2 arguments:
Name | Description |
---|---|
iterable | the iterable whose items to sum |
start | sums the start value and the items of the iterable. sum defaults to 0 (optional) |
If you aren't sure what type a variable stores, use the built-in type()
class.
my_tuple = (15, 30, 45) print(type(my_tuple)) # 👉️ <class 'tuple'> print(isinstance(my_tuple, tuple)) # 👉️ True my_int = 5 print(type(my_int)) # 👉️ <class 'int'> print(isinstance(my_int, int)) # 👉️ True
The type class returns the type of an object.
The isinstance
function returns True
if the passed in object is an instance or a subclass of
the passed in class.