• python练习题--2


    1、判断字符list中是否有重复

    思路:通过集合去重,然后对比list长度,重复返回False,不重复返回True

    #检查是否有重复元素
    def check_repeat(list):
        return len(list)==len(set(list))

    2、两个字符串每个字符出现次数均相等,顺序可以不同

    counter方法可以统计字符出现次数

    #检测两个字符串是否互为变位词(即互相颠倒字符顺序)
    from collections import Counter
    def counter_str(first,second):
        return Counter(first)==Counter(second) 

    3、以字节为单位返回字符串长度

    思路:字符串编码格式改为UTF-8,然后统计长度

    #以字节为单位返回字符串长度
    def byte_size(str):
        return  len(str.encode('utf-8')) #一个汉字占3个字节

    4、重复打印字符串

    思路:乘以n,实现多次的效果

    #重复打印字符串N次
    n=7
    str='zhao'
    print(str*n)

    5、字符串中每个词首字母大写

    #首字母大写,字符串每个词进行首字母大写
    s='count your awesome'
    print(s.title()) #字符串内每个词进行首字母大写

    6、删除list中错误的数据

    bool函数,错误的数就是FALSE,0,none,filter相当于迭代器,把list中的每个值传给bool方法

    #以下方法使用fliter()删除列表中的错误值(如:false,none,0和"")
    def compact(lst):
        return list(filter(bool,lst))
    print(compact([0,1,False,2,3,None,4,5]))

    7、间隔数--转换二维数组

    思路:通过解包函数,把array数组每个二维数组解包,重新组合

    #间隔数--转换一个二维数组
    array=[['a','b'],['c','d'],['e','f']]
    transposed=list(zip(*array))
    print(transposed) #[('a', 'c', 'e'), ('b', 'd', 'f')]

    8、字符串列表转换为单个字符串,列表中的每个元素用逗号分隔

    #字符串列表转换为单个字符串,列表中的每个元素用逗号分隔
    hobbies=['your','jeans','swimming']
    print(','.join(hobbies))

     9、计算元音字母数

    思路:通过正则匹配,然后统计得出数组的长度就是元音字母数

    import  re
    def word_num(str):
        return len(re.findall('[aeiou]',str)) #正则匹配,然后统计个数

    10、字符串首字母转小写

    #首字母恢复小写 ----给定字符串的第一个字母转为小写
    def decapitalize(str):
        return  str[:1].lower()+str[1:]

    11、多维数组变一维数组

    #多维数组变一维数组
    def spread(arg):
        ret=[]
        for i in arg:
            if isinstance(i,list):
                ret.extend(i)
            else:
                ret.append(i)
        return ret
    def deep_spread(lst):
        rets=[]
        rets.extend(spread(list(map(lambda x:deep_spread(x) if type(x)==list else x ,lst ))))
        return rets
    
    print(deep_spread([1,[3],[[3],4],5]))

    12、找出两个数组中不同的字符

    #差异--找出两个数组中不同的数
    def difference(a,b):
        set_a=set(a)
        set_b=set(b)
        comparison=set_b.symmetric_difference(set_a)
        return  list(comparison)
    print(difference([3,4,5],[2,3,4]))

    13、链式函数,以下方法可在一行中调用多个函数

    def add(a,b):
        return a+b
    def substract(a,b):
        return a-b
    a,b=4,5
    print((substract if a>b else add)(a,b)) #一行调用多个函数

    14、合并两个字典

    def merge_two_dicts(a,b): #第一种方法
        c=a.copy()
        c.update(b)
        return c
    
    def merge_dictionaries(a,b): #第二种方法
        return {**a,**b}
    a = {  'x' : 1,  'y' : 2}
    b = {  'y' : 3,  'z' : 4}
    print(merge_two_dicts(a, b))
    print(merge_dictionaries(a,b))

    15、两个列表变为字典

    思路:解包函数

    def to_dic(keys,values):
        return dict(zip(keys,values))
    print(to_dic([3,4,5],[6,7,8]))

    16、枚举函数

    list=['a','b','c','d','e']
    for index,values in enumerate(list):
        print("value:%s , index:%s "%(values,index))

    17、try-else

    #try else ---你可以将ELSE子句作为try/except块的一部分,如果没有抛出异常,则执行该子句
    try:
        2*3
    except TypeError:
        print('aaa')
    else:
        print('bbb')

    18、找出列表中出现次数最多的元素

    def most_frequent(list):
        return max(set(list),key=list.count)
    list=[1,2,3,4,1,2]
    print(most_frequent(list))

     19、没有if-else语句的简单计算器

    #没有if-else语句的简单计算器
    import operator
    action={
        "+":operator.add,
        "-":operator.sub,
        "/":operator.truediv,
        "*":operator.mul,
        "**":pow
    }
    print(action["+"](50,34))
  • 相关阅读:
    如何让dapper支持oracle游标呢?
    使用Polly让程序有Retry的机制
    js代码优化
    学习simple.data之基础篇
    如何在.net4.0中使用.net4.5的async/await
    异步导出excel
    让人蛋疼的“Oracle.DataAccess.dll”
    关于函数和方法总结
    linux和windows的区别
    01-linux软件包管理器安装和编译安装
  • 原文地址:https://www.cnblogs.com/xiaokuangnvhai/p/11613139.html
Copyright © 2020-2023  润新知