
python语法基础
网球小伙子
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
python 通过 asyncio 异步操作 mongo, 可在 jupyter 上运行
python 通过 asyncio 异步操作 mongo, 可在 jupyter 上运行原创 2022-05-07 17:56:39 · 920 阅读 · 0 评论 -
python dict key-values互换,values有重复的
key:value ----> value: [k1, k2],def kv_reversal(data_dict): # key-value 互换,value有重复 kv_list = defaultdict(list) for k, v in data_dict.items(): kv_list[v].append(k) kv_list = dict(kv_list) return kv_list原创 2022-03-07 09:41:18 · 631 阅读 · 0 评论 -
python单例模式
class Person(object):# 定义一个类属性,而且将其私有化,表示当前类可以创建的唯一的实例 __instance = None def __new__(cls, *args, **kwargs): print("new~~~~") # 思路:判断__instance的值是否为None,如果为None,则创建当前类的对象并赋值给__instance # 如果__instance不为None,则直接返回结果原创 2021-07-13 17:12:55 · 117 阅读 · 0 评论 -
python中datetime、date、string相互转化
包from datetime import datetimefrom datetime import datefrom datetime import timedatetime 转化为 datet = datetime.now()tdatetime.datetime(2020, 12, 16, 21, 41, 37, 786837)t = t.date()tdatetime.date(2020, 12, 16)date 转化为 datetimet = datetime.co原创 2020-12-16 22:02:39 · 764 阅读 · 0 评论 -
python的多个字典dict合并一个字典的九种方法
d1 = {‘name’: ‘revotu’, ‘age’: 99}d2 = {‘age’: 24, ‘sex’: ‘male’}输出:{‘name’: ‘revotu’, ‘age’: 24, ‘sex’: ‘male’}d = {}d.update(d1) # 方法1,使用两次update方法向字典中添加元素d.update(d2)print(d)d = d1.copy() # 方法2,先复制,后更新d.update(d2)print(d)d = dict(d原创 2020-12-07 20:08:22 · 46623 阅读 · 0 评论 -
python自定义异常类
#1.自定义异常类,继承自BaseException或者Exceptionclass MyException(BaseException): #2.书写构造函数,定义一个实例属性,表示当异常出现时异常的描述信息 def __init__(self,msg): #3.继承父类的异常机制【调用父类的构造函数】 super(MyException,self).__init__() self.msg = msg #4.重写__str__,返原创 2020-11-02 17:15:19 · 314 阅读 · 0 评论 -
普通方法,类方法,静态方法
普通方法类方法静态方法所属方法属于实例方法属于类方法类内部相对独立的方法定义方式无特殊情况,正常定义即可需要使用classmethod装饰需要用staticmethod装饰函数传参方式要求第一个参数是self,代表实例对象本身要求第一个参数是cls,表示类的本身没有传参要求,一般不传参数访问情况可以访问类内部所有的属性和方法,通过self可以获取到类内部的任何属性和方法可以访问类内部的类属性和类方法,因为可以通过cls访问到类属性和类方法无法...原创 2020-08-29 15:48:40 · 609 阅读 · 0 评论 -
找出列表只出现一次的数字,其余数字均出现2次
方式一:用count方式二:异或def single_number(arr): num = 0 for i in arr: num = num^i return numsingle_number([1,2,2,1,3,4,3])# 4原创 2020-08-25 14:50:16 · 694 阅读 · 0 评论 -
去除列表中给定值
def del_num(arr,target): count = arr.count(target) for _ in range(count): arr.remove(target) return arrdel_num([1,2,2,3,3,4,5,6,3,7,8,9,9,3],3)# [1, 2, 2, 4, 5, 6, 7, 8, 9, 9]原创 2020-08-25 09:29:31 · 225 阅读 · 0 评论 -
arr中两数之和等于目标数----hash/dict
给定target目标值,找到arr列表中两数相加等于target的下标思想:遍历arr列表,用target减去num元素得到difference差值,查看差值是否存在字典里,如果不存在将num的value:index放进去字典里,否则说明满足条件。def two_sum(arr,target): dic = {} result = [] for index,value in enumerate(arr): difference = target - value原创 2020-08-25 08:55:59 · 196 阅读 · 0 评论 -
python 不使用额外空间实现无序列表去重
元素重复的次数该元素统计出来的次数与个数列表长度减少长度规律(每次应减)22,2-1-1+1/233,3,3-2-1+1/344,4,4,4-3-1+1/4…………nn*n-n-1-1+1/ndef func(arr): if len(arr) < 2: return len(arr) l = len(arr) for i in arr: if arr....原创 2020-08-24 22:11:15 · 404 阅读 · 1 评论 -
python两个字符串查找公共字符串
两个字符串查找公共字符串,要最大最长公共字符串,去判断target列表中元素长度即可。re模块中finditer的简单实例import redef common_str(str1,str2): # 实现最短for循环 max_str = len(str1) > len(str2) and str1 or str2 min_str = len(str1) > len(str2) and str2 or str1 target = [] for i in ra原创 2020-08-24 16:06:15 · 5886 阅读 · 2 评论 -
python中返回字符串中所有符合条件的索引
使用re模块(正则表达式)中的finditer方法s = 'kahcbuzbcahksc'test = re.finditer('ah',s)for i in test: print(i.span())# (1, 3)# (9, 11)原创 2020-08-24 15:57:50 · 2659 阅读 · 0 评论 -
斐波那契数列(迭代器,递归,生成器实现)
斐波那契数列1 1 2 3 5 8 13 21 34 55 89 144…迭代器迭代器中的__iter__和__next__只要满足以下两个原则即可.iter, 必须要返回自身.__next__返回当前的元素,并准备好下次的元素class Fibonacci: def __init__(self,counts): self.start = 0 self.end = 1 self.counts = counts self原创 2020-08-17 21:28:02 · 237 阅读 · 0 评论 -
自定义迭代器实现range方法
迭代器中的__iter__和__next__只要满足以下两个原则即可.iter, 必须要返回自身.__next__返回当前的元素,并准备好下次的元素class MyIterator: def __init__(self,start,end=None,step=1): # 判断end是否传值 if end is None: self.start = 0 self.end = start else:原创 2020-08-17 21:05:38 · 608 阅读 · 0 评论 -
迭代器, 生成器, 和可迭代对象
迭代器: 实现了__iter__和__next__方法的对象是迭代器.生成器: 是一种特殊的迭代器. 特殊在于不需要我们实现__iter__,__next__方法, 只要定义生成器, 生成器自动会帮我实现这两个方法.可迭代对象: 只实现了__iter__没有实现__next__方法的对象,叫做可迭代对象.可迭代对象可以被for循环遍历.可迭代对象通__iter__方法把自身转化为迭代器.生成器的定义有两种:函数中使用yield来返回使用生成器表达式.其实就是列表推导式把中括号改成括号即可..原创 2020-08-17 20:56:17 · 177 阅读 · 0 评论 -
python的赋值与引用(is与==,copy与deepcopy等)
==, is:== 判断的是值, is 判断的是内存地址 (即对象的id)小整数对象: [-5, 256]copy, deepcopy 的区别copy: 只拷贝表层元素deepcopy: 在内存中重新创建所有子元素自定义 deepcopy: my_deepcopy = lambda item: loads(dumps(item, 4))练习:说出执行结果def extendList(val, lst=[]): lst.append(val) return lst.原创 2020-08-17 20:20:50 · 195 阅读 · 0 评论 -
python中*args与**kwargs的区别
*args表示不定长的位置参数**kwargs表示不定长的关键字参数例子def foo(*args, **kwargs): # *args表示不定长的位置参数. print(type(args)) print(args) # **kwargs 表示不定长的关键词参数. print(type(kwargs)) print(kwargs)foo(1, 2, 3, 5, 6, a=4, b=5, c=6)# foo(*(1, 2, 3, 5, 6), *原创 2020-08-12 15:27:33 · 151 阅读 · 0 评论 -
python学习之路——python简介(其中有两个常见的面试题)
python简介(其中有两个常见的面试题)一、计算机简介1.硬件系统2.软件系统3.软件开发4.DOS命令1.相对路径和绝对路径的区别:二、编程语言1.简介2.计算机工作原理三、Python简介1.Python发展史2.Python的特点【面试题】3.Python优缺点【面试题】4.Python应用场景5.PyCharm使用一、计算机简介 计算机主要分为硬件和软件两部分,而我们写代码,主...原创 2020-04-13 20:55:47 · 320 阅读 · 0 评论