DEV Community

Guru prasanna
Guru prasanna

Posted on

1

Python Day-25 List functions, Tasks

split(): It converts string into list and seperated by commas.
join(): It converts list into string.
Example:

1. Reverse the given input-->thursday is today

Method:1 Using loops

s = "today is thursday"
reverse = ""
i = 0

while i<len(s):
    reverse = reverse + s[-(i+1)]
    i+=1

print(reverse) #yadsruht si yadot

i = 0 
word = ""
while i<len(reverse):
    if reverse[i]==' ':
        print(word[::-1],end=' ')
        word = ""
        i+=1
        continue
    word = word + reverse[i]
    i+=1
else:
    print(word[::-1])
Enter fullscreen mode Exit fullscreen mode

Method:2 Using list

sen = "today is thursday"
l =  sen.split(" ")
print(l)
print(l[::-1])
s = " ".join(l[::-1])
print(s)
Enter fullscreen mode Exit fullscreen mode

Output:

yadsruht si yadot
thursday is today
Enter fullscreen mode Exit fullscreen mode

Deep copy:

-->In Python, variables assigned to mutable objects (like lists) hold references to the objects.
-->If two variables reference the same object, changes made via one variable are reflected in the other.

Example:

l1 = [10,20,30]
l2 = l1
print(l1)
print(id(l1))
print(l2)
print(id(l2))
l2[0] = 111
print(l1)
print(l2)
Enter fullscreen mode Exit fullscreen mode

Output:

[10, 20, 30]
127285488814912
[10, 20, 30]
127285488814912
[111, 20, 30]
[111, 20, 30]
Enter fullscreen mode Exit fullscreen mode

Shallow copy:
-->The copy() method creates a new list object but only copies the references of the elements (for nested objects).
-->It will stored in seperate memory address.

Example:

l1 = [10,20,30]
l2 = l1.copy()
print(l1)
print(id(l1))
print(l2)
print(id(l2))
l2[0] = 111
print(l1)
print(l2)
Enter fullscreen mode Exit fullscreen mode

Output:

[10, 20, 30]
140500496468800
[10, 20, 30]
140500496470528
[10, 20, 30]
[111, 20, 30]
Enter fullscreen mode Exit fullscreen mode

Lexicographical Order:

--> lexicographical order means arranging them in dictionary order, based on the alphabetical sequence of their letters.

--> Compares with ASCII order.(A-Z:65-91),(a-z:97-122)

Using comparison operators:

l1 = ['lakshmi', 'guru', 'kuhan']
l2 = ['lakshmi', 'guru', 'kuhan']
print(l1 == l2)
print(l1 != l2)

l2 = ['guru', 'lakshmi', 'kuhan']
print(l1>l2) 
print(l1<l2)
Enter fullscreen mode Exit fullscreen mode

Output:

True
False
True
False
Enter fullscreen mode Exit fullscreen mode

Exercises: Interview questions

  1. Get as output: 10 5 10 6 10 7 20 5 20 6 20 7 30 5 30 6 30 7
l1 = [10,20,30]
l2 = [5,6,7]

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

Output:

10 5 10 6 10 7 
20 5 20 6 20 7 
30 5 30 6 30 7 
Enter fullscreen mode Exit fullscreen mode
  1. Remove if you get 20 20 nearby in output:
l1 = [10,20,30]
l2 = [8,20,7]

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

Output:

10 8 10 20 10 7 
20 8 20 7 
30 8 30 20 30 7 
Enter fullscreen mode Exit fullscreen mode

Tasks:
1. Find pairs from the list which gives sum: 5
l1 = [1,2,3,4,5,6,7,8,9,0]

Method:1

l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]

pairs = []
for i in l: 
    for j in l:
        if i + j == 5:
            pairs.append((i,j))
print(pairs)
Enter fullscreen mode Exit fullscreen mode

Output:

[(1, 4), (2, 3), (3, 2), (4, 1), (5, 0), (0, 5)]
Enter fullscreen mode Exit fullscreen mode

Method:2

l = [1,2,3,4,5,6,7,8,9,0]
for i in range(len(l)):
    for j in range(len(l)):
        sum = l[i] + l[j]
        if sum == 5:
            print(l[i], l[j])
Enter fullscreen mode Exit fullscreen mode

Output:

1 4
2 3
3 2
4 1
5 0
0 5
Enter fullscreen mode Exit fullscreen mode

2. Find the missing number
l = [10,20,30,50,60,70,80,90]

Method:1

l = [10, 20, 30, 50, 60, 70, 80, 90]
results = []

for i in range(len(l) - 1):
    if l[i + 1] - l[i] != 10:
        results.append(int((l[i] + l[i + 1]) / 2))

for result in results:
    print(result)
Enter fullscreen mode Exit fullscreen mode

Method:2

l = [10,20,30,50,60,70,80,90]
i=0
while i<len(l)-1:
    if l[i+1]-l[i]!=10:
        result=(l[i]+l[i+1])/2
        print(int(result))
    i+=1
Enter fullscreen mode Exit fullscreen mode

Output:

40

Please leave your appreciation by commenting on this post!

Okay, let's go.

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

Explore a sea of insights with this enlightening post, highly esteemed within the nurturing DEV Community. Coders of all stripes are invited to participate and contribute to our shared knowledge.

Expressing gratitude with a simple "thank you" can make a big impact. Leave your thanks in the comments!

On DEV, exchanging ideas smooths our way and strengthens our community bonds. Found this useful? A quick note of thanks to the author can mean a lot.

Okay