• Python面试题(十六)


    1、取出两个升序数组中的最小的一半的元素组成一个新的升序数组。

    map(lambda x, y: x if x < y else y, a, b)
    答案

    2、用至少2种不同的方式删除一个list里面的重复元素

    a = [1, 2, 2, 4, 34, 3, 4, 56, 65, 456, 5, 6456, 456, 54, 45, 6, 464, 564]
    # 方法一
    new_list3 = list(set(a))
    
    # 方法二
    new_list = []
    for num in a:
        if num not in new_list:
            new_list.append(num)
    
    # 方法三
    dict1 = dict.fromkeys(a)
    new_list2 = dict1.keys()
    答案

    3、利用线程池(10个线程)实现一个并行打印10行信息的程序,打印This is thread xx.(注:xx为线程id)

    4、关系型数据库的事务隔离级别有哪些,分别有什么影响?

    1、未提交读(Read Uncommitted) 
        直译就是"读未提交",意思就是即使一个更新语句没有提交,但是别的事务可以读到这个改变.这是很不安全的。允许任务读取数据库中未提交的数据更改,也称为脏读。 
    2、提交读(Read Committed) 
       直译就是"读提交",可防止脏读,意思就是语句提交以后即执行了COMMIT以后别的事务就能读到这个改变. 只能读取到已经提交的数据。Oracle等多数数据库默认都是该级别 
    3、可重复读(Repeatable Read): 
       直译就是"可以重复读",这是说在同一个事务里面先后执行同一个查询语句的时候,得到的结果是一样的.在同一个事务内的查询都是事务开始时刻一致的,InnoDB默认级别。在SQL标准中,该隔离级别消除了不可重复读,但是还存在幻象读 
    4、串行读(Serializable) 
       直译就是"序列化",意思是说这个事务执行的时候不允许别的事务并发执行. 完全串行化的读,每次读都需要获得表级共享锁,读写相互都会阻塞
     
    四,隔离级别对事务并发的控制 
    下表是各隔离级别对各种异常的控制能力:
    
    
    丢失更新    脏读    非重复读    二类丢失更新(覆盖更新)    幻像读
    未提交读     Y    Y    Y    Y    Y
    提交读     N    N    Y    Y    Y
    可重复读     N    N    N    N    Y
    串行读     N    N    N    N    N
    答案

    5、请用python编写函数find_string,从文本中搜索并打印内容,要求支持通配符星号和问号。

    例子:

    >>>find_string('hello world ','wor')

    ['wor']

    >>>find_string('hello world ','l*d')

    ['ld']

    >>>find_string('hello world ','o?')

    ['or']

    6、请为find_string编写单元测试

    7、已有一个字典列表,如下:

    li = [
        {'id': '1.1', 'content': "14"},
        {'id': '1.2', 'content': "15"},
        {'id': '1.3', 'content': "16"},
        {'id': '1.4', 'content': "17"},
        {'id': '1.5', 'content': "18"},
    ]

    请写一个类:

    abc = x()
    >>abc['1.1']
    14
    class x(UserDict):
    
        def __init__(self):
            super().__init__()
            for dic in li:
                # print(dic)
                self.data.update({dic['id']:dic['content']})
    
    abc = x()
    print(abc['1.1'])
    答案

     8、如何快速对学生的成绩进行评级:(源自Fluent Python)

      60分以下评为F

      60-70评为D

      ...

      90分以上为A

    import bisect
    import sys
    
    
    def grade(score, breakpoint=[60, 70, 80, 90], grades = 'FDCBA'):
        i = bisect.bisect(breakpoint, score)
        return grades[i]
    
    if __name__ == '__main__':
        level = grade(64)
        print(level)
    答案

     

      

  • 相关阅读:
    【正则】——作业计算数学运算
    【面向对象】-类和对象作业
    【递归】
    笔记本linux问题记录
    监听器模式(Listener)
    Java引用类型
    Dubbo-服务发布-本地暴露/远程暴露
    完成一个Spring的自定义配置
    Dubbo SPI-Adaptive详解
    Dubbo-动态编译
  • 原文地址:https://www.cnblogs.com/skiler/p/7065486.html
Copyright © 2020-2023  润新知