# How to Calculate Percentages of a Numbers List in Python?

## Problem Formulation and Solution Overview

In this article, you’ll learn how to calculate percentages of a numbers list (float or integer) in Python. Given:

• A Python list of numerical elements (float or integer), and
• A percentage value.

Apply the percentage value to each list element and print the result to the Python shell.

• 15% to `[100, 1000, 10000]` yields `[15, 150, 1500]`
• 50% of `[10.0, 20.0, 30.0]` yields `[5.0, 10.0, 15.0]`

In the following article, we round to the full integer number for clarity of presentation—in practice, you can skip the rounding step if needed.

To make it more fun, we have the following running scenario:

Gil, the owner of GatorXpress, has four employees. Their food/bar sales are totaled each week, and a 15% gratuity is issued. Gil has asked you to write code to calculate these percentages rounded to the nearest dollar.

💬 Question: How would we write Python code to calculate the gratuities?

We can accomplish this task by one of the following options:

## Method 1: Use List Comprehension

This example uses List Comprehension and the `round()` function to calculate the percentages.

```emp    = ['Art', 'Sandy', 'Micah', 'Jen']
totals = [245.19, 145.75, 197.87, 196.72]
percentage = 15

tips   = [round(x*percentage/100) for x in totals]

for e, t in zip(emp, tips):
print(f'{e}\t \${round(t)}.00')```

This code declares two (2) lists containing employee names and their total food/bar sales for the current week. Then, each element of `totals` is accessed using List Comprehension to calculate the percentage owed to the employee rounded to the nearest dollar. The result saves to `tips`.

A `for` loop is instantiated using `zip()` to combine the lists. Finally, the formatted output containing the employee names and gratuities owed is sent to the terminal.

Output

## Method 2: Use Lambda and map()

In this example, a Lambda is used in conjunction with the `map()` function to calculate the percentages.

```emp = ['Art', 'Sandy', 'Micah', 'Jen']
totals = [245.19, 145.75, 197.87, 196.72]
percentage = 15

tips = list(map(lambda x : round(x*percentage/100), totals))

for e, t in zip(emp, tips):
print(f'{e}\t \${round(t)}.00')```

This code declares two (2) lists containing employee names and their total food/bar sales for the current week. Then, the `map()` function creates an iterable object that the Lambda accesses and performs the appropriate calculations on. Finally, the result is converted to a list and saved to `tips`.

A `for` loop is instantiated using `zip()` to combine the lists. Finally, the formatted output containing the employee names and gratuities owed is sent to the terminal.

Output

## Method 3: Use zip()

In this example, `zip()` is used to navigate the lists and calculate the percentages. This is an excellent alternative if the calculations do not need to be saved.

```emp    = ['Art', 'Sandy', 'Micah', 'Jen']
totals = [245.19, 145.75, 197.87, 196.72]
percentage = 15

for e, t in zip(emp, totals):
print(f'{e}\t \${round(t*percentage/100)}.00')
```

This code declares two (2) lists containing employee names and their total food/bar sales for the current week.

Then a `for` loop is instantiated using `zip()` to combine the lists. Finally, each element is accessed, the percentage calculated, formatted, and sent to the terminal.

Output

## Method 4: Use a Custom Function

This example creates a new function that takes each employee, calculates, and returns the formatted percentages. A good solution if you need to re-use the code.

```emp    = ['Art', 'Sandy', 'Micah', 'Jen']
totals = [245.19, 145.75, 197.87, 196.72]
percentage = 15

def calc_amt(e, t):
return (f'{e}\t \${round(t*percentage/100)}.00')

for e, t in zip(emp, totals):
print(f'{calc_amt(e, t)}')```

This code declares two (2) lists containing employee names and their total food/bar sales for the current week. Then, a function is created and is passed one element from the `emp `list and one element from the `totals` list.

Then a `for` loop is instantiated using `zip()` to combine the lists. Finally, each element is accessed, and the function `calc_amt` is called. Finally, the formatted output is sent to the terminal.

Output

## Summary

These four (4) methods to calculate percentages should give you enough information to select the best one for your coding requirements.

Good Luck & Happy Coding!