Use Python’s built-in `max()`

function with the `key`

argument to find the longest string in a set. Call `max(my_set, key=len)`

to return the longest string in the set using the built-in `len()`

function to determine the weight of each string—the longest string has maximum length.

👉 **Recommended Tutorial**: How to Find the Longest String in a Python List?

## Problem Formulation

Given a Python set of strings. Find the string with the maximum number of characters—the longest string in the set.

Here are a few example set of strings and the desired output:

# {'Alice', 'Bob', 'Pete'} ----> 'Alice' # {'aaa', 'aaaa', 'aa'} ----> 'aaaa' # {''} ----> '' # {} ----> ''

## Method 1: max() Function with Key Argument Set to len()

Use Python’s built-in `max()`

function with a key argument to find the longest string in a set like so: `max(s, key=len)`

. This returns the longest string in the set `s`

using the built-in `len()`

function to determine the weight of each string—the longest string will be the maximum.

Here’s the code definition of the `get_max_str()`

function that takes a set of strings as input and returns the longest string in the list or a `ValueError`

if the set is empty.

def get_max_str(my_set): return max(my_set, key=len)

Here’s the output we obtain when running our desired examples:

print(get_max_str({'Alice', 'Bob', 'Pete'})) # 'Alice' print(get_max_str({'aaa', 'aaaa', 'aa'})) # 'aaaa' print(get_max_str({''})) # ''

If you pass an empty set, Python will raise a `ValueError: max() arg is an empty sequence`

because you cannot pass an empty iterable into the `max()`

function.

print(get_max_str({})) # ValueError: max() arg is an empty sequence

## Method 2: Handling Empty Sets

If you want to return an alternative value in case the set is empty, you can modify the `get_max_str()`

function to include a second optional argument:

def get_max_str(my_set, fallback=''): return max(my_set, key=len) if my_set else fallback print(get_max_str({})) # '' print(get_max_str({}, fallback='EMPTY!!!!!!')) # EMPTY!!!!!!

## Method 3: Not-So-Pythonic with For Loop

A less Pythonic but, for beginner coders, more readable version is the following loop-based solution:

def get_max_str(my_set, fallback=''): if not my_set: return fallback max_str = '' # set is not empty for x in my_set: if len(x) > len(max_str): max_str = x return max_str print(get_max_str({'Alice', 'Bob', 'Pete'})) # 'Alice' print(get_max_str({'aaa', 'aaaa', 'aa'})) # 'aaaa' print(get_max_str({''})) # '' print(get_max_str({}, fallback='EMPTY!!!!!!')) # EMPTY!!!!!!

## Method 4: Python Max Length of String in Set

To find the ** maximum length** of a string in a given set, use the

`max(my_set, key=len)`

function to obtain the string with the maximum length and then pass this max string into the `len()`

function to obtain the number of characters of the max string.**len(max(my_set, key=len))**

Here’s a more detailed example:

def get_max_length(my_set): return len(max(my_set, key=len)) print(get_max_length({'Alice', 'Bob', 'Pete'})) # 5 print(get_max_length({'aaa', 'aaaa', 'aa'})) # 4 print(get_max_length({''})) # 0 print(get_max_length({})) # ValueError: max() arg is an empty sequence

Thanks for taking the time to read this article! 🙂 Feel free to join us – it’s fun and we have cheat sheets!

## Programming Humor

👉 **Recommended Tutorial**: How to Get the Shortest String in a Python Set?

While working as a researcher in distributed systems, Dr. Christian Mayer found his love for teaching computer science students.

To help students reach higher levels of Python success, he founded the programming education website Finxter.com that has taught exponential skills to millions of coders worldwide. He’s the author of the best-selling programming books Python One-Liners (NoStarch 2020), The Art of Clean Code (NoStarch 2022), and The Book of Dash (NoStarch 2022). Chris also coauthored the Coffee Break Python series of self-published books. He’s a computer science enthusiast, freelancer, and owner of one of the top 10 largest Python blogs worldwide.

His passions are writing, reading, and coding. But his greatest passion is to serve aspiring coders through Finxter and help them to boost their skills. You can join his free email academy here.