DEV Community

Lakshmi Pritha Nadesan
Lakshmi Pritha Nadesan

Posted on

Day-25 List functions, Tasks

split():

The split() method divides a string into a list of substrings based on a separator.

join():

The join() method concatenates the elements of an iterable into a single string, using the string it's called on as a separator.

Example using loop:

s = "today is thursday"
reverse = ""
i = 0
while i<len(s):
    reverse = reverse + s[-(i+1)]
    i+=1
print(reverse)
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
yadsruht si yadot
thursday is today

Enter fullscreen mode Exit fullscreen mode

Example 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

['today', 'is', 'thursday']
['thursday', 'is', 'today']
thursday is today

Enter fullscreen mode Exit fullscreen mode

Deep copy:

A deep copy in Python refers to creating a new object that is a fully independent copy of the original object, including all objects nested within it.

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
[10, 20, 30]
127285488814912
[10, 20, 30]
127285488814912
[111, 20, 30]
[111, 20, 30]

Enter fullscreen mode Exit fullscreen mode

Shallow copy:

A shallow copy, where the new object is a copy of the original object, but it contains references to the same nested objects.

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
[10, 20, 30]
140500496468800
[10, 20, 30]
140500496470528
[10, 20, 30]
[111, 20, 30]

Enter fullscreen mode Exit fullscreen mode

Lexicographical Order:

Lexicographical order is a generalization of the way words are alphabetically ordered in a dictionary.

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
True
False
True
False
Enter fullscreen mode Exit fullscreen mode

Examples:

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
10 5 10 6 10 7 
20 5 20 6 20 7 
30 5 30 6 30 7 
Enter fullscreen mode Exit fullscreen mode

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("     ", end=" ")
        else:
            print(no, num, end=' ')
    print()
Enter fullscreen mode Exit fullscreen mode
10 8 10 20 10 7 
20 8       20 7 
30 8 30 20 30 7 

Enter fullscreen mode Exit fullscreen mode

Task:
Find pairs with given sum: 5

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
1 4
2 3
3 2
4 1
5 0
0 5

Enter fullscreen mode Exit fullscreen mode

Find the missing number:

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
40
Enter fullscreen mode Exit fullscreen mode

Top comments (0)