DEV Community

Lakshmi Pritha Nadesan
Lakshmi Pritha Nadesan

Posted on

1

Day-26 List Comprehension

List Comprehension:

It's a syntactically elegant method to create or manipulate lists in a single line of code.

Write a program to print the fruits contains letter 'a'(using for loop):

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
['apple', 'banana', 'mango']

Enter fullscreen mode Exit fullscreen mode

(Using list comprehension):

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

newlist = [x for x in fruits if "a" in x]
print(newlist)

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

Write a program to find the square root of given number:

l = [10,20,30,40]
newlist = []

#using for 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
[100, 400, 900, 1600]
[100, 400, 900, 1600]
Enter fullscreen mode Exit fullscreen mode

Find similar numbers from 2 lists and different numbers from the same 2 lists:

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

#for loop
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
30 40 
[30, 40]
Enter fullscreen mode Exit fullscreen mode
1 = [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)

#for loop
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
[10, 20, 50, 60]
10 20 50 60

Enter fullscreen mode Exit fullscreen mode

Write a 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
[(1, 5), (1, 6), (1, 7), (2, 5), (2, 6), (2, 7), (3, 5), (3, 6), (3, 7)]
Enter fullscreen mode Exit fullscreen mode

Write a 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
abc123
Enter fullscreen mode Exit fullscreen mode

Write a 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
aeknbd
Enter fullscreen mode Exit fullscreen mode

Task:

1) Write a program to get the output 'abbbbklllbcc'

s = "a4k3b2"
i = 0

while i < len(s):
    first = s[i]  
    second =int(s[i + 1]) 
    print(first,chr(ord(first)+1)*second,sep='',end='')
    i+=2

Enter fullscreen mode Exit fullscreen mode
abbbbklllbcc
Enter fullscreen mode Exit fullscreen mode

2) Write a program to get the output 'aaaaakkkkbbb'

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
aaaaakkkkbbb

Enter fullscreen mode Exit fullscreen mode

3.Join the given matrix into single list using comprehensive for and normal for loop.

Method:1(Using for loop)

matrix = [[10,20,30], [40,50,60], [70,80,90]]
output=[]

for i in matrix:
    for j in i:
        output.append(j)
print(output)

Enter fullscreen mode Exit fullscreen mode

Method:2(Using comprehensive for loop)

matrix = [[10, 20, 30], [40, 50, 60], [70, 80, 90]]

output = [j for i in matrix for j in i]
print(output)

Enter fullscreen mode Exit fullscreen mode
[10, 20, 30, 40, 50, 60, 70, 80, 90]

Enter fullscreen mode Exit fullscreen mode

4.l = ['ABC','DEF', 'GHI', 'JKL']
Get OUTPUT: ['ABC', 'def','GHI', 'jkl']

l = ['ABC', 'DEF', 'GHI', 'JKL']

output = [] 
for i, alpha in enumerate(l):
    if i % 2 != 0:
        output.append(alpha.casefold())
    else:
        output.append(alpha)
print(output)
Enter fullscreen mode Exit fullscreen mode
['ABC', 'def', 'GHI', 'jkl']

Enter fullscreen mode Exit fullscreen mode

5.Find the row wise total for the given matrix:

matrix = [[10,20,30], 
          [40,50,60], 
          [70,80,90]]
for inner in matrix:
    total = 0
    for index,num in enumerate(inner):
        total+=num
    print(total,end=' ')

Enter fullscreen mode Exit fullscreen mode
60 150 240
Enter fullscreen mode Exit fullscreen mode

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

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