美文网首页大数据
Python 小目标10

Python 小目标10

作者: 不连续小姐 | 来源:发表于2019-04-17 23:08 被阅读1次

    Python Day 16

    1. distinct Average

    suppose 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

    相关文章

      网友评论

        本文标题:Python 小目标10

        本文链接:https://www.haomeiwen.com/subject/vhhawqtx.html