Python Day 16
1. distinct Averagesuppose we want to find the distinct average of a list.
Key: we need to use SET function.
def average(array):
sum1=sum(set(array))
n=len(set(array))
return(sum1/n)
[caption id=“attachment_2136” align=“alignnone” width=“650”]
12019 / Pixabay[/caption]
2. Symmetric Difference Challenge: List the Symmetric Difference integers for two sets in ascending order, one per line.Before we solve the challenge, we will go over some basic Set operations in Python.
Set:
a=input() 5 4 3 2 list1=a.split() print(list1) ['5', '4', '3', '2']
MAP: convert the strings to integers
newlist=list(map(int,list1)) pprint(newlist) [5,4,3,2]
Creating set
#1. Directly assigning values to a set
myset = {1, 2}
#2.Creating a set from a list
myset = set() # Initializing a set
myset = set(['a', 'b'])
myset
{'a', 'b'}
Modifying Sets
We will show the functions: Add, Update, and Remove
#1.Add values to a set
myset.add("c")myset{"a", "b", "c"}
#2. Update a set value
myset.update([1,2,3,4]) #update only works for iterable objects
myset
{"a", "b", "c", 1,2,3,4}
#3. Remove items
myset.discar(1)
myset
{"a", "b", "c", 2,3,4}
Common Set Operations:
We will introduce 3 basic set operations: Union, Intersection, Difference.
#1. Union: values in a or b
a = {2, 4, 5, 9}
b = {2, 4, 11, 12}
a.union(b) #order doesn't matter
{2, 4, 5, 9, 11, 12}
#2. Intersection: values in a and b
a.intersection(b) #order doesn't matter
{2,4}
#3. Difference: values in a but not in b
a.difference(b) #order does matter
{9,5}
Now, back to our original challenge, we will use the difference function to solve the problem
a,b = [set(input().split()) for _ in range(4)][1::2]
ad=a.difference(b)
bd=b.difference(a)
c=ad.union(bd)
print('n'.join(sorted(c, key=int)))
#Alternative solution
print ('n'.join(sorted(a^b, key=int)))
Happy Studying! ⛵
Reference:
https://www.hackerrank.com/challenges/py-set-add/problem



