zoukankan      html  css  js  c++  java
  • python面试的100题(13)

    29.Given an array of integers

    给定一个整数数组和一个目标值,找出数组中和为目标值的两个数。你可以假设每个输入只对应一种答案,且同样的元素不能被重复利用。示例:给定nums = [2,7,11,15],target=9 因为 nums[0]+nums[1] = 2+7 =9,所以返回[0,1]

    class Solution:
        def twoSum(self,nums,target):
            """
            :type nums: List[int]
            :type target: int
            :rtype: List[int]
            """
            d = {}
            size = 0
            while size < len(nums):
                if target-nums[size] in d:
                    if d[target-nums[size]] <size:
                        return [d[target-nums[size]],size]
                    else:
                        d[nums[size]] = size
                    size = size +1
    solution = Solution()
    list = [2,7,11,15]
    target = 9
    nums = solution.twoSum(list,target)
    print(nums)
    给列表中的字典排序:假设有如下list对象,alist=[{"name":"a","age":20},{"name":"b","age":30},{"name":"c","age":25}],将alist中的元素按照age从大到小排序 
    alist=[{"name":"a","age":20},{"name":"b","age":30},{"name":"c","age":25}]
    alist_sort = sorted(alist,key=lambda e: e.__getitem__('age'),reverse=True)

    30.python代码实现删除一个list里面的重复元素

    def distFunc1(a):
        """使用集合去重"""
        a = list(set(a))
        print(a)
    
    def distFunc2(a):
        """将一个列表的数据取出放到另一个列表中,中间作判断"""
        list = []
        for i in a:
            if i not in list:
                list.append(i)
        #如果需要排序的话用sort
        list.sort()
        print(list)
    
    def distFunc3(a):
        """使用字典"""
        b = {}
        b = b.fromkeys(a)
        c = list(b.keys())
        print(c)
    
    if __name__ == "__main__":
        a = [1,2,4,2,4,5,7,10,5,5,7,8,9,0,3]
        distFunc1(a)
        distFunc2(a)
        distFunc3(a)

    31.统计一个文本中单词频次最高的10个单词?

    import re
    
    # 方法一
    def test(filepath):
        
        distone = {}
    
        with open(filepath) as f:
            for line in f:
                line = re.sub("W+", " ", line)
                lineone = line.split()
                for keyone in lineone:
                    if not distone.get(keyone):
                        distone[keyone] = 1
                    else:
                        distone[keyone] += 1
        num_ten = sorted(distone.items(), key=lambda x:x[1], reverse=True)[:10]
        num_ten =[x[0] for x in num_ten]
        return num_ten
        
     
    # 方法二 
    # 使用 built-in 的 Counter 里面的 most_common
    import re
    from collections import Counter
    
    
    def test2(filepath):
        with open(filepath) as f:
            return list(map(lambda c: c[0], Counter(re.sub("W+", " ", f.read()).split()).most_common(10)))



  • 相关阅读:
    【项目管理】WBS工作分解结构
    【代理篇】内网穿透利器——Termite
    【漏洞分析】Discuz! X系列全版本后台SQL注入漏洞
    【代理篇】内网穿透利器——EarthWorm
    【漏洞复现】Apache Solr远程代码执行(CVE-2019-0193)
    【漏洞复现】Apache Solr via Velocity template远程代码执行
    【漏洞复现】PHPStudy后门
    记一次织梦cms渗透测试
    Mybatis源码手记-从缓存体系看责任链派发模式与循环依赖企业级实践
    Dubbo源码手记-服务注册
  • 原文地址:https://www.cnblogs.com/Fiona-Y/p/10570295.html
Copyright © 2011-2022 走看看