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.

Reinvent your career. Join DEV.

It takes one minute and is worth it for your career.

Get started

Top comments (0)

AWS Security LIVE!

Tune in for AWS Security LIVE!

Join AWS Security LIVE! for expert insights and actionable tips to protect your organization and keep security teams prepared.

Learn More

👋 Kindness is contagious

Immerse yourself in a wealth of knowledge with this piece, supported by the inclusive DEV Community—every developer, no matter where they are in their journey, is invited to contribute to our collective wisdom.

A simple “thank you” goes a long way—express your gratitude below in the comments!

Gathering insights enriches our journey on DEV and fortifies our community ties. Did you find this article valuable? Taking a moment to thank the author can have a significant impact.

Okay