# Programming, Data Structures And Algorithms Using Python - Week 3 Programming Assignment | NPTEL | Jan 2023

## Define a Python function remdup(l) that takes a nonempty list of integers l and removes all duplicates in l, keeping only the last occurrence of each number. For instance: >>> remdup([3,1,3,5]) [1, 3, 5]

```def remdup(l):
seen = set()
result = []
for x in reversed(l):
if x not in seen:
result.append(x)
result.reverse()
return result
```

## Write a Python function splitsum(l) that takes a nonempty list of integers and returns a list [pos,neg], where pos is the sum of squares all the positive numbers in l and neg is the sum of cubes of all the negative numbers in l. Here are some examples to show how your function should work. >>> splitsum([1,3,-5]) [10, -125]

```def splitsum(l):
pos = 0
neg = 0
for i in l:
if i > 0:
pos += i**2
else:
neg += i**3
return [pos, neg]
```

## Write a Python function matrixflip(m,d) that takes as input a two dimensional matrix m and a direction d, where d is either 'h' or 'v'. If d == 'h', the function should return the matrix flipped horizontally. If d == 'v', the function should retun the matrix flipped vertically. For any other value of d, the function should return m unchanged. In all cases, the argument m should remain undisturbed by the function. Here are some examples to show how your function should work. You may assume that the input to the function is always a non-empty matrix. >>> myl = [[1,2],[3,4]] >>> myl [[1, 2], [3, 4]] >>> matrixflip(myl,'h') [[2, 1], [4, 3]]

```def matrixflip(m, d):
if d == 'h':
return [row[::-1] for row in m]
elif d == 'v':
return m[::-1]
else:
return m
```

Disclaimer:
"This page contains Porgramming Assignment answers related to The Joy of Computing using Python . The answers to these questions are provided for educational and informational purposes only.These answers are provided only for the purpose to help students to take references. This website does not claim any surety of 100% correct answers. So, this website urges you to complete your assignment yourself."