📜  竞争性编码的Python技巧

📅  最后修改于: 2021-06-26 11:56:24             🧑  作者: Mango

Python是一种这样的编程语言,它使一切变得简单而直接。任何精通Python竞争编码的人都会对它的许多功能沉迷。这是我发现的一些很酷的功能,它们在竞争性编码环境中最有用。

  1. Counter Package的most_common函数。
    这可能是我曾经使用过的最有用的函数,并且在编写任何Python代码时始终在脑海中。此函数分析列表/字符串并有助于根据它们的出现降序排列,其中n是由程序员指定的号码的数量返回前n个实体列表/字符串。在元组中返回各个实体及其出现的次数,可以在需要时轻松地进行引用/打印。
    # Code to find top 3 elements and their counts
    # using most_common
    from collections import Counter
      
    arr = [1, 3, 4, 1, 2, 1, 1, 3, 4, 3, 5, 1, 2, 5, 3, 4, 5]
    counter = Counter(arr)
    top_three = counter.most_common(3)
    print(top_three)
    

    输出:

    [(1, 5), (3, 4), (4, 3)]
    

    输出元组清楚地指出1发生了5次,3发生了4次,而4发生了3次。

  2. heapq软件包的n个最大/ n个最小的函数。
    此函数有助于返回任何列表中的前n个最小/最大元素,这里n又是程序员指定的数字。
    # Python code to find 3 largest and 4 smallest
    # elements of a list.
    import heapq
      
    grades = [110, 25, 38, 49, 20, 95, 33, 87, 80, 90]
    print(heapq.nlargest(3, grades))
    print(heapq.nsmallest(4, grades))
    

    输出:

    [110, 95, 90]
    [20, 25, 33, 38]
    

    输出的第一行给出列表等级中存在的最大数字中的3个。同样,输出的第二行将打印出列表等级中存在的最小元素中的4个。此函数的另一个特点是它不会忽略重复。因此,如果要放置数组的长度,则代替n会导致整个排序后的数组本身!

  3. 字典和压缩字典的概念
    就其提供的独特功能而言, Python中的字典确实引人入胜。它们以类似数组的形式存储为键和值对。每个值都可以通过其相应的键进行访问。
    zip函数用于将两个列表连接在一起,或者我们甚至可以将字典中的键和值对作为单个列表连接在一起。在下面的代码片段中将清楚说明此概念的应用。
    # Python code to demonstrate use of zip.
    import heapq
      
    stocks = {
        'Goog' : 520.54,
        'FB' : 76.45,
        'yhoo' : 39.28,
        'AMZN' : 306.21,
        'APPL' : 99.76
        }
      
    zipped_1 = zip(stocks.values(), stocks.keys())
      
    # sorting according to values
    print(sorted(zipped_1))
      
    zipped_2 = zip(stocks.keys(), stocks.values())
    print(sorted(zipped_2))
    #sorting according to keys
    

    输出:

    [(39.28, 'yhoo'), (76.45, 'FB'), (99.76, 'APPL'), (306.21, 'AMZN'), (520.54, 'Goog')]
    [('AMZN', 306.21), ('APPL', 99.76), ('FB', 76.45), ('Goog', 520.54), ('yhoo', 39.28)]
    
  4. 地图函数。
    这个函数是一个偷偷摸摸的小捷径,它使我们能够以非常常规的方式在值列表上实现一个简单的函数。下面的示例将对此功能进行简单的应用。该函数将函数名称和需要应用该函数的列表的名称作为参数。
    # Python code to apply a function on a list
    income = [10, 30, 75]
      
    def double_money(dollars):
        return dollars * 2
      
    new_income = list(map(double_money, income))
    print(new_income)
    

    输出:

    [20, 60, 150]
    

    在这里,我们只是实现了一个简单的函数,该函数将每个列表值乘以2,然后将其作为新列表返回。

  5. 字符串列表的串联
    假设我们得到了一个字符串列表,并且我们必须通过串联该列表来给出输出
    让我们看一下先前的代码我们正在做什么:
    string = ""
    lst = ["Geeks", "for", "Geeks"]
    for i in lst:
        string += i
    print(string)
    

    这种连接字符串列表的方法绝对不是最好的方法,因为每次都会创建一个新的字符串

    lst = ["Geeks", "for", "Geeks"]
    string = ''.join(lst)
    print(string)
    

    使用join()函数提高了内存效率,而且编写起来也很方便,这无疑证明了它比以前的代码更具优势。

个别地,这些功能看似无害,但在限时编码环境中肯定会派上用场,因为它们可以在非常短的代码中提供大量功能。所讨论的功能具有非常特定的应用,在竞争性编码中的作用类似于快捷键或快捷键。掌握这些有用的技巧可能只会为某人提供他们正在寻找的竞争优势!

如果您希望与行业专家一起参加现场课程,请参阅《 Geeks现场课程》和《 Geeks现场课程美国》。