How to Interleave Multiple Equilength Lists in Python?

Barbara Streisand
Release: 2024-11-14 18:51:02
Original
749 people have browsed it

How to Interleave Multiple Equilength Lists in Python?

Interleaving Multiple Equilength Lists in Python: A Pythonic Approach

In Python, the task of interleaving multiple lists of the same length arises frequently. This operation involves alternating the elements from the input lists to produce a new list.

Problem Statement:

Given two or more lists of equal length, find a Pythonic way to interleave their elements into a single list, preserving the original element order.

Solution:

Using the powerful zip() function and list comprehension, we can achieve the desired interleaving in a concise and elegant manner.

For two lists, l1 and l2, the following code snippet demonstrates the interleaving process:

[val for pair in zip(l1, l2) for val in pair]
Copy after login

This code uses the zip() function to create pairs of corresponding elements from l1 and l2. Then, it iterates over each pair and unpacks its elements (val) into the list comprehension.

Example:

l1 = [1, 2, 3]
l2 = [10, 20, 30]

interleaved_list = [val for pair in zip(l1, l2) for val in pair]

print(interleaved_list)  # [1, 10, 2, 20, 3, 30]
Copy after login

Generalizing for N Lists:

The same technique can be generalized to interleave an arbitrary number of lists:

lists = [l1, l2, ..., ln]
[val for tup in zip(*lists) for val in tup]
Copy after login

This code uses the * operator to unpack the lists into separate arguments for zip(), creating tuples of corresponding elements from all input lists. The list comprehension iterates over each tuple and extracts its elements to build the interleaved list.

The above is the detailed content of How to Interleave Multiple Equilength Lists in Python?. For more information, please follow other related articles on the PHP Chinese website!

source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template