﻿ Python: Generate combinations of an given iterable - w3resource

# Python: Generate combinations of an given iterable

## Python Itertools: Exercise-11 with Solution

Write a Python program to generate combinations of a given length of a given iterable.

Sample Solution:

Python Code:

``````import itertools as it
def combinations_data(iter, length):
return it.combinations(iter, length)
#List
result = combinations_data(['A','B','C','D'], 1)
print("\nCombinations of an given iterable of length 1:")
for i in result:
print(i)

#String
result = combinations_data("Python", 1)
print("\nCombinations of an given iterable of length 1:")
for i in result:
print(i)

#List
result = combinations_data(['A','B','C','D'], 2)
print("\nCombinations of an given iterable of length 2:")
for i in result:
print(i)

#String
result = combinations_data("Python", 2)
print("\nCombinations of an given iterable of length 2:")
for i in result:
print(i)
```
```

Sample Output:

```Combinations of an given iterable of length 1:
('A',)
('B',)
('C',)
('D',)

Combinations of an given iterable of length 1:
('P',)
('y',)
('t',)
('h',)
('o',)
('n',)

Combinations of an given iterable of length 2:
('A', 'B')
('A', 'C')
('A', 'D')
('B', 'C')
('B', 'D')
('C', 'D')

Combinations of an given iterable of length 2:
('P', 'y')
('P', 't')
('P', 'h')
('P', 'o')
('P', 'n')
('y', 't')
('y', 'h')
('y', 'o')
('y', 'n')
('t', 'h')
('t', 'o')
('t', 'n')
('h', 'o')
('h', 'n')
('o', 'n')
```

Python Code Editor:

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

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']}
```

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