python leetcode刷题笔记
目录
数组:
******************************************************************字符串:
******************************************************************字典
******************************************************************函数:
******************************************************************类:
百度110道python面试题:https://www.cnblogs.com/lmx123/p/9230589.html
*************************************************************
utf-8和Unicode到底有什么区别?
unicode基本包含了全世界的字符
utf-8是对这unicode的字符进行编码的规则
采取变长编码,常用的字符编码字节少
把英文的字符编码成1个字节,节省传输消耗的资源。
数组:
list.remove(list[3]) # 移除指定元素
但是在:for i in list: # list = [2, 3, 4, 5]
list.remove(i) # 这里会把i变成索引,然后把索引中的元素remove
# 结果为[3, 5] 把i理解为相当于a[i]就理解了
list += [2] # list前后id不变
list = list + [2] # list前后id改变
def add(m1, m2=[]):
m2.append(m1)
return m2
print(add(“1”)) # 1
print(add(“2”)) # 1 2
print(add(“3”, [])) # 3
print(add(“4”)) # 1 2 4
nums.insert(0,a) # 索引为0插入a
nums[:] = nums[-k:] + nums[:-k]
list(set(list)) # 列表去重
num in list # 列表in的用法
list.count(0) # 列表种0出现的次数
list = [1, 2] print(list[2:]) # 不会报错 打印结果[]
列表的复制问题,会跟着改变
list = [‘3’, ‘7’, ‘6’, ‘8’, ‘9’]
print(“”.join(list)) # 输出:37689 格式是:
list.sort() 列表的排序方法
****************************************************************** 字符串:
可以用正则做替换:re.sub(“S”, “s”, string) string中用s替换S
或string.replace(“S”, “s”)
s1 = sorted(s) # 字符串排序生成新的字符串s1,s的顺序不变
字符串移除指定字符用t.replace(a,””)不会更改原来符串t,
是创建新的字符串,会替换所有a
filter(function, iterable) # filter() 函数用于过滤序列,
过滤掉不符合条件的元素,返回由符合条件元素组成的新列表。
Pyhton2.7 返回列表,Python3.x 返回迭代器对象,该函数用来过滤序列。
s = ‘’.join(filter(str.isalnum,s)).lower() # 只保留字母和数字,
字母转为小写
s == s[::-1] # 判断是否回文
ret = re.findall(r”^[-+]?\d+”, str.strip()) # ret为列表,元素为字符串
bin(11) = “ob1011”
s = s = “hello world !”
s.split() # 打印结果[‘hello’, ‘world’, ‘!’]
****************************************************************** 字典
dic = collections.defaultdict(list) # list指values为list
dic的类型:defaultdict(
d = {‘a’: 3, ‘c’: 1, ‘b’: 2}
d.items() # dict_items([(‘a’, 3), (‘c’, 1), (‘b’, 2)])
d_list = sorted(d.items(), key=lambda x: x[1], reverse=False)
按照values从小到大排序
print(dict(d_list)) # {‘c’: 1, ‘b’: 2, ‘a’: 3}
d_list = sorted(d.items(), key=lambda x: x[0], reverse=False)
按照key从小到大排序
print(dict(d_list)) # {‘a’: 3, ‘b’: 2, ‘c’: 1}
d_list = sorted(d.items(), key=lambda x: x[0], reverse=True)
按照key从大到小排序
print(dict(d_list)) # {‘c’: 1, ‘b’: 2, ‘a’: 3}
temp = {“c”: 1, ‘a’: 3, “b”: 2}
print(sorted(temp)) # 结果:[‘a’, ‘b’, ‘c’]
for key, val in temp.items():
print(key, val) # 结果1
print(f”{key}: {val}“) # 结果2
结果1:
c 1
a 3
b 2
结果2:
a: 3
b: 4
c: 9
****************************************************************** 函数:
int(input(), 16) # 把input()当作16进制转化为十进制数。
int(3.9) # 只取整数部分
map(function, iterable,…)
如:map(square, [1,2,3,4]) # [1,4,9,16]
匿名函数:
b = lambda a : a + 3
print(b(5)) # 结果8
函数不确定参数
def print_info1(arg1, *arg2):
print(arg1)
print(arg2)
def print\_info2(arg1, \*\*kwargs):
print(arg1)
print(arg2)
list = \[1,2,3\]
d = \{'a':1, "b":2\}
print\_info1(3, 4, 5, 6) \#True
print\_info1(3, list) \#False
print\_info1(3, \*list) \#True \*:分开传入
print\_info2(3, 4, 5, 6) \#False
print\_info2(3, a=4, b=5, c=6) \#True
print\_info2(3, \*\*d) \#True
abs() # 取绝对值
ord(‘C’) # 转为ACSII码范围(0~127)
str = “3”
str.isdigit() # 判断str是否只为数字
str.isalpha() # 判断str是否为字母
chr() # 返回当前整数对应的 ASCII 字符
print(a, end=’’) # 不换行
****************************************************************** 类:
多重继承问题:
class A():
class B(A):
class C():
class D(B, C):
D().run() # 先看D有没有run,再看B有没有run,再看B的父子A有没有run,最后才看C有没有run
print(__mro__) # 可以查看顺序
int(input(),16) # 16进制转为10进制
list(map(int, input().split())) # 输入转为整数列表,split()默认为空格
set() # 去重返回的是乱序
仿函数
class Hello():
def __call__(self, a): #把类直接当作函数用。
print(a)
a = Hello()
a(“hello world!”) # 打印出:hello world!
@classmethod
def acc(cls):
"""
类方法,隐含参数cls,不能调用实例方法,
可以被实例方法调用
"""
@staticmethod
def aee():
"""
静态方法,没有参数,不能调用实例方法,
可以被实例方法调用
"""
__name__
例如b脚本导入a,
在a脚本执行a,a的\_\_name\_\_ = \_\_main\_\_;
其他文件导入,a的\_\_name\_\_ = a的文件名
import random,string
src = string.ascii_letters + string.digits
list_passwd_all = random.sample(src, 5) #从字母和数字中随机取5位
# string.ascii_letters 大小写字母
# string.ascii_lowercase 小写字母
# string.ascii_uppercase 大写字母
# string.punctuation 特殊字符
if ord(ch) < 127: # 字符对应的ACSII码<127
chr(88) # ACSII码为88对应的字符
hex() # 将整数转换为十六进制
oct() # 将整数转换为八进制
bin() # 将整数转换为二进制
super() 函数是用于调用父类(超类)的一个方法
Python3.x 和 Python2.x 的一个区别是: Python 3 可以使用直接使用 super().xxx 代替 super(Class, self).xxx
b —->位(bit)
B —->字节 一个字节等于8位
1B = 8 bit
if i.isdigit(): # 判断字符串i是否为数字
if i.lower() == i: 判断字符串i的小写为小写字母
还没有评论,来说两句吧...