• python面试题


    第一章:python基础


    数据类型:


    字典

    1.1 现有字典 dic = {'a': 24, 'g': 52, 'i': 12, 'k': 33} 请按字典中的 value 值进行排序?

    dic = {'a': 24, 'g': 52, 'i': 12, 'k': 33}
    a = sorted(dic.items(), key=lambda x: x[1])
    

    1.2 说一下字典和json的区别?

    字典和json样式十分相似,字典是一种数据结构,json是一种数据的表现形式(格式),字典的key值只要是能hash的就行,json的必须是字符串
    
    字典可以用单引号,而在json中得用双引号,所以如果想将一个字典以json格式传递时,记得将单引号都替换成双引号
    

    1.3 什么是可变、不可变类型?

    可变不可变指的是内存中的值是否可以被改变,
    不可变类型指的是对象所在内存块里面的值不可以改变,有数值、字符串、元组;
    可变类型则是可以改变,主要有列表、字典。
    

    1.4 存入字典里的数据有没有先后排序?

    存入的数据不会自动排序,可以使用sort函数对字典进行排序。


    1.5 字典推导式?

    dict = {key: value for (key, value) in iterable}
    

    1.6 现有字典 d = {'a': 24, 'g': 52, 'I': 12, 'k': 33 }请按字 典中的 value 值进行排序?

    d = {'a': 24, 'g': 52, 'I': 12, 'k': 33}
    a = sorted(d.items(), key=lambda x: x[1]))
    

    企业面试题


    1. 如何对一遍文章进行敏感词替换, 加入有1000个敏感词

    sensitive.txt文件结构

    渣男|心机婊|好色
    
    import re
    
    
    def read_txt(file_name):
        # 读取txt文件
        with open(file_name, 'r') as file_to_read:
            lines = list()
            # 打开文件, 一次读一行
            for line in file_to_read.readlines():
                if line is not None:
                    # 符合条件的存入列表
                    lines.append(line.strip('
    '))
        return lines
    
    
    def sensitive_words(file_name):
        with open(file_name, 'r', encoding='utf-8') as f:
            ls = f.read().split('|')
    
        return ls
    
    
    def shield_sensitive_word(file_name, sensitive_name):
        # 屏蔽敏感词
        articles = read_txt(file_name)
        sensitive_word = sensitive_words(sensitive_name)
        with open('2.txt', 'wt', encoding='utf-8') as f:
            for pattern in articles:
                a = pattern
                for i in sensitive_word:
                    match = re.search(i, pattern)
                    if match:
                        a = re.sub(i, '*', pattern)
                        # a = pattern.replace(i, '***')
                        print('有敏感词汇{}'.format(i))
    
                f.write('%s%s' % (a, '
    '))
    
    
    if __name__ == "__main__":
        shield_sensitive_word('1.txt', 'sensitive.txt')
    

    2. 以下代码输出结果

    from operator import attrgetter
    from itertools import groupby
    
    class Student:
        def __init__(self, id, name):
            self.id = id
            self.name = name
    
        def __repr__(self):
            return repr((self.name, self.id))
    
    
    data_list = [Student(1, 'xiao'), Student(3, 'xiaoming'), Student(4, 'xiaohu'), Student(6, 'xiaohua')]
    print(data_list) # [('xiao', 1), ('xiaoming', 3), ('xiaohu', 4), ('xiaohua', 6)]
    data_list.sort(key=attrgetter('id', 'name'))  # 对data_list的元素根据id和name进行排序
    print(data_list)
    data_group_list = [list(k) for g, k in groupby(data_list, key=lambda x:x.id)]
    
    print(data_group_list)
    

    输出结果

    [[('xiao', 1)], [('xiaoming', 3)], [('xiaohu', 4)], [('xiaohua', 6)]]
    
  • 相关阅读:
    数论&数学中结论证明
    「Uva11401」数三角形
    「CJOJ2725」Wave
    「CJOJ2724」Number
    「CJOJ2723」Reserve
    「CJOJ2722」Ping
    「CJOJ2573」Snake vs Block
    「CJOJ2574」Lucky Transformati
    「CJOJ2721」取石块儿
    「CJOJ2366」机器人采集金属
  • 原文地址:https://www.cnblogs.com/cjwnb/p/11729963.html
Copyright © 2020-2023  润新知