再进-PYTHON设计模式-绝对实战-python实战20题

 再进-PYTHON设计模式-绝对实战

实战出发,应对常见场景

解决常见算法题

 

一二章节的参考文档:Python设计模式中的策略模式详解_python_脚本之家 (jb51.net)

  写的比较好

一、策略模式

  本质:不同算法的组件的共同接口。

二、命令模式

 

 

 

python实战20题

  1 AMD 超威半导体 笔试题

 

  2 NLP语料排列组合题

  

  3 字典深拷贝-递归题

 

  4 filter 过滤集合题

  背景:对一组json文件,获取相应信息。

  json文件格式:

 

  (1)读 json,以及做必要的数据格式转换
(2)对读取的结果的每一条记录,做过滤。入参1 = 一条记录,入参2 = 过滤函数
(3)对过滤的结果进行排序。入参1 = 所有过滤后的记录,入参2 = 排序函数

  https://www.runoob.com/python/python-func-filter.html

 

 

class DataFilter:
    def __init__(self):
        pass

    def filter_odd(self, data_n):
        def is_odd(data_n):
            r = True if data_n % 2 == 1 else False
            return r
        res = filter(is_odd,  data_n)
        return list(res)

    def filter_more_5(self, data_n):
        def is_more_5(n):
            return n>=5
        res = filter(is_more_5,data_n)
        return list(res)

    def filter_similar(self, data_n, similar):
        def less_similar(n):
            return n <= similar

        return list(filter(less_similar, data_n))

    def filter_mse(self, data_n, mse):
        def more_mse(n):
            return n >= mse
        return list(filter(more_mse, data_n))


def interseg_and_unoin():
    set1 = {1, 2, 3, 4}
    set2 = {3, 4, 5, 6}

    # 找到两个集合的交集
    intersection_set = set1.intersection(set2)
    print("Intersection set:", intersection_set)

    # 找到两个集合的并集
    union_set = set1.union(set2)
    print("Union set:", union_set)


obj_list = [1,2,3,4,5,6,7,8]
df = DataFilter()
res = df.filter_odd(obj_list)

# 求 if x % 2 == 1 and x >= 5:    交集
res = df.filter_more_5(df.filter_odd(obj_list))
print(res)

# 求 if x <= similar or x >= mse   并集
res = df.filter_mse(df.filter_similar(obj_list, similar=6.0), mse=2.0)
print(res)

# 3  真实求并集
# obj_list = {"n1":[0.99,100],"n2":[0.98,101], "n3":[0.97,1000], "n4":[0.93,200]}
obj_s = [1,2,3,4,5,6,7,]
obj_mse = [1,2,3,4,5,6,7]

obj_1 = df.filter_similar(obj_s, 3)
obj_2 = df.filter_mse(obj_mse, 6)
union_set = set(obj_1).union(set(obj_2))
print("Union set:", union_set)
filter_and_easycode

 

  

posted on 2024-06-23 11:43  lexn  阅读(6)  评论(0)    收藏  举报

导航