zoukankan      html  css  js  c++  java
  • Python-[--001--]-Python涉及的算法题

    第一题:将 a = [1,1,1,2,2,3,3,3,4,5,6,6,6,7,8,8]转化为c = [1,1,2,2,3,3,4,5,6,6,7,8]

    分析:对出现相同元素次数大于2的进行处理

    a = [1,1,1,2,2,3,3,3,4,5,6,6,6,7,8,8]
    # c = [1,1,2,2,3,3,4,5,6,6,7,8]
    b = []
    for i in a:
    
        if b.count(i) < 2:
    
            b.append(i)
    
    print(b)

    第二题:找出字符串中重复的内容

    f = "asklabassk"
    def find_distinct(string):
    
        l1 =[] # 去重的
        l2 =[] # 重复的
        for i in range(0, len(string)):
    
            if string[i] in l1:
    
                l2.append(string[i])
            else:
                l1.append(string[i])
        return  set(l2)
    
    
    f = "asklabassk"
    
    res = find_distinct(f)
    print(res)
    --------------------------
    {'s', 'a', 'k'}

    第三题:统计字符串中元素出现的次数

    def count_each_char_1(string):
        res = {}
        for i in string:
            if i not in res:
                res[i] = 1
            else:
                res[i] += 1
        return res
    
    
    print(count_each_char_1('aenabsascd'))

    ------------------------------
    {'a': 3, 'e': 1, 'n': 1, 'b': 1, 's': 2, 'c': 1, 'd': 1}

     第四题:一个txt文档中的英文单词,统计每个单词出现的次数,并倒叙排列

    t.txt

    test,add touch test aaa hehe . add add test test

    代码

    d = {}
    with open("test.txt",'r') as f:
    
        for line in f:
    
            line = line.replace(","," ")
            line = line.replace("."," ")
            line = line.replace("!"," ")
    
            # 将所有内容去除空格,输出一个列表['test', 'add', 'touch', 'test', 'aaa', 'hehe', 'add', 'add', 'test', 'test']
            str_lines = line.split()
    
            print(str_lines)
    
            for str in str_lines:
    
                if str in d.keys():
    
                    d[str] += 1
    
                else:
                    d[str] = 1
    
    print(d.items())
    result = sorted(d.items(),key=lambda k:k[1],reverse=True)
    print(result)

    输出

    [('test', 4), ('add', 3), ('touch', 1), ('aaa', 1), ('hehe', 1)]

     第五题:求出列表中某元素出现的次数大于列表的一半长度的元素

    a = [1,1,1,2,2,6,6,6,6,6,6,6]
    s = set()
    for i in a:
    
        if a.count(i)>int(len(a)/2):
    
            s.add(i)
    
    
    print(list(s))
    
    ——————————————————————————
    [6]

     第六题:找出两个列表中相同的元素和不同弄的元素

    l5 = [1,2,3,4,5,6]
    l6 = [2,3,4,7,8,9]
    l7 = [i for i in l5 if i in l6]               # [2, 3, 4]
    l8 = [i for i in (l5+l6) if i not in l7]      # [1, 5, 6, 7, 8, 9]
    print(l7)
    print(l8)
    # 第二种方法
    print(set(l5)&set(l6))   # [2, 3, 4]
    print(set(l5)^set(l6))   # {1, 5, 6, 7, 8, 9}

    第七题:如何删除list里面的重复的元素并保证顺序并不变化

    l3 = [1,5,5,3,6,6,7,35,7,6,6,88.44,33,5]
    l4 = []
    for i in l3:
    
        if i not in l4:
            l4.append(i)
    
    print(l4)    # [1, 5, 3, 6, 7, 35, 88.44, 33]

    第八題:生成等差数列

    l2 = list(range(8,100,12))
    print(l2)   # [8, 20, 32, 44, 56, 68, 80, 92]

    第九题:一行代码求1-1000的和

    s1 = sum(range(1,1000))
    print(s1)      # 499500
    # 第二种方法
    from functools import reduce
    s2 = reduce(lambda x,y:x+y,range(1,1000))
    print(s2)

    第十题:生成奇数数列

    """
    用一行代码生成奇数数列
    """
    l1 = [2*i+1 for i in range(10)]
    print(l1)   # [1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
  • 相关阅读:
    echo "http://172.17.26.115:8380/?key=%c8%fd%d0%c7%ca%d6%bb%fa%b1%f9%cf%e4" | mail -s "noresult_monitr error" maolingzhi@jd.com
    python实现的文本编辑器
    PyQt写的浏览单web页面的browser
    中非发展基金
    团队介绍
    微众—国内最大的微信公众服务平台
    微软创投加速器简介
    知方可补不足~SQL为大数据引入分区表
    实时监控Cat之旅~介绍与自定义类型在哪里
    EF架构~Cannot attach the file as database
  • 原文地址:https://www.cnblogs.com/chushujin/p/13441474.html
Copyright © 2011-2022 走看看