w3resource

Python: Interleave multiple lists of different lengths using itertools module

Python Itertools: Exercise-38 with Solution

Write a Python program to interleave a number of lists of different lengths using the itertools module.

Sample Solution:

Python Code:

from itertools import chain, zip_longest
def interleave_diff_len_lists(list1, list2, list3, list4):
    return [x for x in chain(*zip_longest(list1, list2, list3, list4)) if x is not None]    
    
nums1 = [2, 4, 7, 0, 5, 8]
nums2 = [2, 5, 8]
nums3 = [0, 1]
nums4 = [3, 3, -1, 7]

print("\nOriginal lists:")
print(nums1)
print(nums2)
print(nums3)
print(nums4)

print("\nInterleave said lists of different lengths:")
print(interleave_diff_len_lists(nums1, nums2, nums3, nums4))

Sample Output:

Original lists:
[2, 4, 7, 0, 5, 8]
[2, 5, 8]
[0, 1]
[3, 3, -1, 7]

Interleave said lists of different lengths:
[2, 2, 0, 3, 4, 5, 1, 3, 7, 8, -1, 0, 7, 5, 8]

Python Code Editor:


Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a Python program to add two given lists of different lengths, start from left , using itertools module.

Next: Write a Python program to get the index of the first element, which is greater than a specified element using itertools module.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.

Python: Tips of the Day

Inverts a dictionary with non-unique hashable values:

Example:

def tips_collect_dictionary(obj):
  inv_obj = {}
  for key, value in obj.items():
    inv_obj.setdefault(value, list()).append(key)
  return inv_obj
ages = {
  "Owen": 25,
  "Jhon": 25,
  "Pepe": 15,
}
print(tips_collect_dictionary(ages))

Output:

{25: ['Owen', 'Jhon'], 15: ['Pepe']}

 





We are closing our Disqus commenting system for some maintenanace issues. You may write to us at reach[at]yahoo[dot]com or visit us at Facebook