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.
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.
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']}
- Weekly Trends
- Java Basic Programming Exercises
- SQL Subqueries
- Adventureworks Database Exercises
- C# Sharp Basic Exercises
- SQL COUNT() with distinct
- JavaScript String Exercises
- JavaScript HTML Form Validation
- Java Collection Exercises
- SQL COUNT() function
- SQL Inner Join
- JavaScript functions Exercises
- Python Tutorial
- Python Array Exercises
- SQL Cross Join
- C# Sharp Array Exercises
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