DEV Community

qing
qing

Posted on • Edited on

Quick Python Tip: itertools.chain Flattens Lists Without Nested Loops

Quick Python Tip: itertools.chain Flattens Lists Without Nested Loops
When working with multiple lists of lists, flattening them into a single list can be a common requirement. A straightforward approach is to use nested loops to iterate over each sublist and append its elements to a new list. However, this can lead to cumbersome code, especially when dealing with a large number of lists.

Here's an example of the traditional nested loop approach:

lists = [[1, 2], [3, 4], [5, 6]]
flattened_list = []
for sublist in lists:
    for element in sublist:
        flattened_list.append(element)
print(flattened_list)  # [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

In contrast, the itertools.chain function provides a more elegant solution. By passing the lists to itertools.chain using the * operator, we can flatten the lists in a single line of code:

import itertools
lists = [[1, 2], [3, 4], [5, 6]]
flattened_list = list(itertools.chain(*lists))
print(flattened_list)  # [1, 2, 3, 4, 5, 6]
Enter fullscreen mode Exit fullscreen mode

This approach not only reduces code complexity but also improves readability. The takeaway is that using itertools.chain(*lists) is a more efficient and Pythonic way to flatten multiple lists without resorting to nested loops.


Follow me on Dev.to for daily Python tips and quick guides!


💡 Related: **Content Creator Ultimate Bundle (Save 33%)* — $29.99*


喜欢这篇文章?关注获取更多Python自动化内容!


If you found this useful, you might like Python Interview Prep Guide — a practical resource that takes things a step further. At $24.99 it's a solid investment for your toolkit.

Top comments (0)