随笔分类 -  Python

摘要:交叉链表求交点 1 class ListNode: 2 def __init__(self, x): 3 self.val = x 4 self.next = None 5 def node(l1, l2): 6 length1, lenth2 = 0, 0 7 # 求两个链表长度 8 while 阅读全文
posted @ 2020-04-23 10:07 燕十三丶 阅读(191) 评论(0) 推荐(0)
摘要:1.尾递归 1 def _recursion_merge_sort2(l1, l2, tmp): 2 if len(l1) == 0 or len(l2) == 0: 3 tmp.extend(l1) 4 tmp.extend(l2) 5 return tmp 6 else: 7 if l1[0] 阅读全文
posted @ 2020-04-23 09:43 燕十三丶 阅读(232) 评论(0) 推荐(0)
摘要:1 直接创建 dict = {'name':'earth', 'port':'80'} 2 工厂方法 items=[('name','earth'),('port','80')] dict2=dict(items) dict1=dict((['name','earth'],['port','80'] 阅读全文
posted @ 2020-04-23 09:32 燕十三丶 阅读(531) 评论(0) 推荐(0)
摘要:1->2->3->4 转换成 2->1->4->3 class ListNode: def __init__(self, x): self.val = x self.next = None class Solution: # @param a ListNode # @return a ListNod 阅读全文
posted @ 2020-04-23 09:29 燕十三丶 阅读(288) 评论(0) 推荐(0)
摘要:1.用集合 2.list(set(l)) 用字典 l1 = ['b','c','d','b','c','a','a'] l2 = {}.fromkeys(l1).keys() print l2 3.用字典并保持顺序l1 = ['b','c','d','b','c','a','a'] l2 = lis 阅读全文
posted @ 2020-04-23 09:23 燕十三丶 阅读(503) 评论(0) 推荐(0)
摘要:Python GC 主要使用引用计数(reference counting)来跟踪和回收垃圾。在引用计数的基础上,通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用问题,通过“分代回收”(generation collection)以空间换时间的方法提高垃圾回收效率。 阅读全文
posted @ 2020-04-22 16:32 燕十三丶 阅读(174) 评论(0) 推荐(0)
摘要:引用和 copy(),deepcopy()的区别 举例说明: import copy a = [1, 2, 3, 4, ['a', 'b']] #原始对象 b = a #赋值,传对象的引用 c = copy.copy(a) #对象拷贝,浅拷贝 d = copy.deepcopy(a) #对象拷贝,深 阅读全文
posted @ 2020-04-22 13:49 燕十三丶 阅读(123) 评论(0) 推荐(0)
摘要:线程全局锁(Global Interpreter Lock),即 Python 为了保证线程安全而采取的独立线程运行的限制,说白了就是一个核只能在同一时间运行一个线程. 解决办法就是多进程和下面的协程(协程也只是单 CPU,但是能减小切换代价提升性能) 阅读全文
posted @ 2020-04-22 10:41 燕十三丶 阅读(198) 评论(0) 推荐(0)
摘要:Python 中,一个变量的作用域总是由在代码中被赋值的地方所决定的。 当 Python 遇到一个变量的话他会按照这样的顺序进行搜索: 本地作用域(Local)→当前作用域被嵌入的本地作用域(Enclosing locals)→全局/模块作用域(Global)→内置作用域(Built-in) 阅读全文
posted @ 2020-04-22 10:12 燕十三丶 阅读(187) 评论(0) 推荐(0)
摘要:1 使用__new__方法 1 class Singleton(object): 2 def __new__(cls, *args, **kw): 3 if not hasattr(cls, '_instance'): 4 orig = super(Singleton, cls) 5 cls._in 阅读全文
posted @ 2020-04-22 10:05 燕十三丶 阅读(166) 评论(0) 推荐(0)
摘要:装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能 阅读全文
posted @ 2020-04-22 09:45 燕十三丶 阅读(144) 评论(0) 推荐(0)
摘要:.format 在许多方面看起来更便利.对于%最烦人的是它无法同时传递一个变量和元组.你可能会想下面的代码不会有什么问题: "hi there %s" % name 但是,如果name恰好是(1,2,3),它将会抛出一个TypeError异常.为了保证它总是正确的, 你必须这样做: "hi ther 阅读全文
posted @ 2020-04-21 18:07 燕十三丶 阅读(157) 评论(0) 推荐(0)
摘要:__foo__:一种约定,Python 内部的名字,用来区别其他用户自定义的命名,以防冲突. _foo:一种约定,用来指定变量私有.程序员用来指定私有变量的一种方式. __foo:这个有真正的意义:解析器用_classname__foo 来代替这个名字,以区别和其他类相 同的命名. 阅读全文
posted @ 2020-04-21 18:05 燕十三丶 阅读(179) 评论(0) 推荐(0)
摘要:d = {key: value for (key, value) in iterable} 1 name = ["张三", "李四", "王五", "李六"] # 保存名字列表 2 sign = ["白羊座", "双鱼座", "狮子座", "处女座"] #保存星座列表 3 dict1 = {i : 阅读全文
posted @ 2020-04-21 17:50 燕十三丶 阅读(662) 评论(0) 推荐(0)
摘要:自省就是面向对象的语言所写的程序在运行时,所能知道对象的类型. 简单一句就是运行时能够获得对象的类型.比如 type(),dir(),getattr(),hasattr(),isinstance(). 阅读全文
posted @ 2020-04-21 17:45 燕十三丶 阅读(259) 评论(0) 推荐(0)
摘要:1 import re 2 str = "http://www.baidu.com/" 3 regular = re.compile(r'[a-zA-Z]+://[^\s]*[.com|.cn]') 4 re.findall(regular, str) ['http://www.baidu.com' 阅读全文
posted @ 2020-04-21 16:58 燕十三丶 阅读(5273) 评论(0) 推荐(0)
摘要:is 是比较两个引用是否指向了同一个对象(引用比较)。 == 是比较两个对象是否相等 阅读全文
posted @ 2020-04-17 17:42 燕十三丶 阅读(148) 评论(0) 推荐(0)
摘要:1 #定义一个函数 2 def test(number): 3 4 #在函数内部再定义一个函数,并且这个函数用到了外边函数的变量,那么称里面 的这个函数为闭包 5 def test_in(number_in): 6 print("in test_in 函数, number_in is %d"%num 阅读全文
posted @ 2020-04-17 10:20 燕十三丶 阅读(205) 评论(0) 推荐(0)
摘要:通过列表生成式,我们可以直接创建一个列表。但是,受到内存限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,如果我们仅仅需要访问前面几个元素,那后面绝大多数元素占用的空间都白白浪费了。所以,如果列表元素可以按照某种算法推算出来,那我们是否可以在循环的过程中不断 阅读全文
posted @ 2020-04-17 09:12 燕十三丶 阅读(284) 评论(0) 推荐(0)
摘要:如果要让内部属性不被外部访问,可以把属性的名称前加上两个下划线__,在 Python 中,实例的变量名如果以__开头,就变成了一个私有变量(private),只有内部可以访问,外部不能访问 阅读全文
posted @ 2020-03-27 10:52 燕十三丶 阅读(195) 评论(0) 推荐(0)

AmazingCounters.com