DEV Community

Guru prasanna
Guru prasanna

Posted on

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

Top comments (0)