当前位置:   article > 正文

codeFight-Python编程训练(2)_code fights

code fights
  • 1.计算整数列表的最小公倍数

    例如,给定列表d=[2,3,4,5,6],函数的输出为leastCommonDenominator() = 60
    用到了pythonfraction模块,代码示例:

        from fractions import gcd
    
        def leastCommonDenominator(denominators):
            return reduce(lambda x,y:(x*y)//gcd(x,y),denominators)
    • 1
    • 2
    • 3
    • 4

  • 2.python 字典的键值类型

    判断下列对象中哪些可以用做pythondict的键值:

    1.set
    2.frozenset
    3.tuple of mutable objects
    4.tuple of immutable objects
    5.list of mutable objects
    6.list of immutable objects
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    正确答案是24,解释见12


  • 3.python 中的排序函数sort和sorted

    给一个字符串,找出组成这个字符串的字符并按ASCII码值进行排序,例:

    document = "Todd told Tom to trot to the timber"
    • 1
    '
    运行

    则函数的输出为:

    uniqueCharacters(document) = [' ', 'T', 'b', 'd', 'e', 'h', 'i', 'l', 'm', 'o', 'r', 't']
    • 1

    示例代码如下:

    def uniqueCharacters(document):
        return sorted(set(document),key=lambda x:ord(x))
    • 1
    • 2
    '
    运行

    参考python中的Sorting HOW TO


  • 4.判断一个集合关系

    判断a是否是b的子集。例如,a=[1,2],b=[1,2,3]
    subSetOrNot(a,b)=True
    代码示例:

    def subSetOrNot(a,b):
        return set(a)<=set(b)
    • 1
    • 2
    '
    运行

    主要考察set的应用,参考3.当然还有别的解法。


  • 5.给定一个列表变成指定形式

    给定一个list ,譬如lis=[1,2,3,4,2]生成的列表形式为:

    dooledPassword(lis)=[[1,2,3,4,2]
                         [2,3,4,2,1]
                         [3,4,2,1,2]
                         [4,2,1,2,3]
                         [2,1,2,3,4]]
    • 1
    • 2
    • 3
    • 4
    • 5

    示例代码如下:

    from collections import deque
    
    def doodledPassword(digits):
        n = len(digits)
        res = [deque(digits) for _ in range(n)]
        map(lambda x,y:x.rotate(-y),res,range(n))
        return [list(d) for d in res]
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    '
    运行

    用到的知识主要有collections4模块和map函数5.


  • 6.根据字典的值对字典排序
    给一个编程语言文件名的字典,其值是文件扩展名,根据字典值的字母表顺序对字典进行排序,并转置生成二维列表,例如:

    scriptByExtension = {
                        "validate": "py",
                        "getLimits": "md",
                        "generateOutputs": "json"
                        }
    • 1
    • 2
    • 3
    • 4
    • 5
    '
    运行

    其对应的结果为:

    transposeDictionary(scriptByExtension) = [["json", "generateOutputs"], 
                                              ["md", "getLimits"], 
                                              ["py", "validate"]]
    • 1
    • 2
    • 3

    示例代码如下:

    def transposeDictionary(scriptByExtension):
        return list(zip(map(lambda y:y[1],sorted(scriptByExtension.items(),key=lambda x:x[1])),map(lambda y:y[0],sorted(scriptByExtension.items(),key=lambda x:x[1]))))   
    • 1
    • 2
    '
    运行

    主要是sorted()函数6对字典排序的使用,以及zip函数7函数的使用。


refer:

1 http://www.runoob.com/python/python-dictionary.html

2 https://wiki.python.org/moin/DictionaryKeys

3 http://blog.csdn.net/business122/article/details/7541486

4 https://docs.python.org/2/library/collections.html#collections.deque

5 http://www.runoob.com/python/python-func-map.html

6 https://docs.python.org/2.7/howto/sorting.html

7 https://docs.python.org/2/library/functions.html

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/901226
推荐阅读
相关标签
  

闽ICP备14008679号