DEV Community

Guru prasanna
Guru prasanna

Posted on

1

Python Day-26 List comprehension-Exercises

List Comprehension

List comprehension offers a shorter syntax when you want to create a new list based on the values of an existing list. (refer-https://www.w3schools.com/python/python_lists_comprehension.asp)

Example:1
Method:1

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]
newlist = []

for x in fruits:
  if "a" in x:
    newlist.append(x)

print(newlist)
Enter fullscreen mode Exit fullscreen mode

Method:2(comprehensive)

fruits = ["apple", "banana", "cherry", "kiwi", "mango"]

newlist = [x for x in fruits if "a" in x]
print(newlist)
Enter fullscreen mode Exit fullscreen mode

Output:

['apple', 'banana', 'mango']
Enter fullscreen mode Exit fullscreen mode

Example:2

l = [10,20,30,40]
newlist = []
#using normal loop
for num in l:
    newlist.append(num**2)
print(newlist)

#using loop in comprehensive way
newlist = [num**2 for num in l]
print(newlist)
Enter fullscreen mode Exit fullscreen mode

Output:

[100, 400, 900, 1600]
[100, 400, 900, 1600]
Enter fullscreen mode Exit fullscreen mode

Exercise:
1.Find similar numbers from 2 lists and different numbers from the same 2 lists.
l1 = [10,20,30,40]
l2 = [30,40,50,60]
Get this output:
a) 30,40

#30,40
l1 = [10,20,30,40]
l2 = [30,40,50,60]
#normal method

for num in l1:
    for no in l2:
        if num== no:
            print(num,end=' ')
#comprehensive

print([num for num in l1 for no in l2 if num==no])
Enter fullscreen mode Exit fullscreen mode

output:

[30, 40]
Enter fullscreen mode Exit fullscreen mode

b) 10,20,50,60

l1 = [10,20,30,40]
l2 = [30,40,50,60]
#comprehensive
output = [num for num in l1 if num not in l2]

output = output + [num for num in l2 if num not in l1]
print(output)

#normal method
for num in l1:
    if num not in l2:
        print(num,end=' ')

for num in l2:
    if num not in l1:
        print(num,end=' ')
Enter fullscreen mode Exit fullscreen mode

Output:

[10, 20, 50, 60]
10 20 50 60 
Enter fullscreen mode Exit fullscreen mode

2. Find program for the given output in comprehensive approach
l1 = [1,2,3]
l2 = [5,6,7]
Output:[(1, 5), (1, 6), (1, 7), (2, 5), (2, 6), (2, 7), (3, 5), (3, 6), (3, 7)]

l1 = [1,2,3]
l2 = [5,6,7]

l = [(i,j) for i in l1 for j in l2 if i!=j]
print(l)
Enter fullscreen mode Exit fullscreen mode

Output:

[(1, 5), (1, 6), (1, 7), (2, 5), (2, 6), (2, 7), (3, 5), (3, 6), (3, 7)]
Enter fullscreen mode Exit fullscreen mode

3. Find program for the given output:
s = "a1b2c3"
output: abc123

Method:1

s = "a1b2c3"

alpha_list = []
num_list = []

for letter in s:
    if letter.isalpha():
        alpha_list.append(letter)
    else:
        num_list.append(letter)

print("".join(alpha_list+num_list))
Enter fullscreen mode Exit fullscreen mode

Method:2

s = "a1b2c3"
letter=''.join([i for i in s if i.isalpha()])
no=''.join([i for i in s if i.isdigit()])

print(letter+no)
Enter fullscreen mode Exit fullscreen mode

Output:

abc123
Enter fullscreen mode Exit fullscreen mode

4. Find program for the given output:

s = "a4k3b2"
output: aeknbd

s = "a4k3b2"
i = 0 
while i<len(s):
    first = s[i]
    second = int(s[i+1])
    print(first, chr(ord(first)+second),sep='',end='')
    i+=2
Enter fullscreen mode Exit fullscreen mode

Output:

aeknbd

Explanation:

-->The ASCII value of first is obtained using ord(first), and second is added to it to find the new character.
-->ord() used to find ASCII value.
-->chr() converts ASCII value-->character.

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more