Home  >  Article  >  Backend Development  >  How Can I Zip Unequal Length Lists by Repeating the Shorter One?

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

DDD
DDDOriginal
2024-10-27 19:18:01272browse

How Can I Zip Unequal Length Lists by Repeating the Shorter One?

Zipping Differently Sized Lists by Repeating the Shorter One

When attempting to zip two lists with unequal lengths, the built-in zip function falls short by not repeating the shorter list to match the larger one. To overcome this, alternative approaches are necessary.

Solution Using itertools.cycle

The itertools.cycle function provides the ability to iterate over an iterable endlessly. This feature can be leveraged to repeat the shorter list indefinitely while zipping it with the longer list.

Implementation:

<code class="python">import itertools

A = [1, 2, 3, 4, 5, 6, 7, 8, 9]
B = ["A", "B", "C"]

zip_list = zip(A, itertools.cycle(B)) if len(A) > len(B) else zip(itertools.cycle(A), B)</code>

In this solution, we use a conditional statement to determine which list should be repeated. If A is longer than B, we use itertools.cycle to repeat B, and if B is longer than A, we repeat A.

The resulting zip_list will contain tuples pairing elements from A and B, with B being repeated as necessary to match the length of A. This approach ensures that all elements from both lists are paired together, with the shorter list repeating as needed.

The above is the detailed content of How Can I Zip Unequal Length Lists by Repeating the Shorter One?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
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