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])
Method:2 Using list
sen = "today is thursday"
l = sen.split(" ")
print(l)
print(l[::-1])
s = " ".join(l[::-1])
print(s)
Output:
yadsruht si yadot
thursday is today
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)
Output:
[10, 20, 30]
127285488814912
[10, 20, 30]
127285488814912
[111, 20, 30]
[111, 20, 30]
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)
Output:
[10, 20, 30]
140500496468800
[10, 20, 30]
140500496470528
[10, 20, 30]
[111, 20, 30]
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)
Output:
True
False
True
False
Exercises: Interview questions
- 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()
Output:
10 5 10 6 10 7
20 5 20 6 20 7
30 5 30 6 30 7
- 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()
Output:
10 8 10 20 10 7
20 8 20 7
30 8 30 20 30 7
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)
Output:
[(1, 4), (2, 3), (3, 2), (4, 1), (5, 0), (0, 5)]
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])
Output:
1 4
2 3
3 2
4 1
5 0
0 5
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)
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
Output:
40
Top comments (0)