python leetcode刷题笔记

港控/mmm° 2022-12-13 12:44 278阅读 0赞

目录

数组:

******************************************************************字符串:

******************************************************************字典

******************************************************************函数:

******************************************************************类:


百度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(, {‘aet’: [‘eat’]}

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)

  1. def print\_info2(arg1, \*\*kwargs):
  2. print(arg1)
  3. print(arg2)
  4. list = \[1,2,3\]
  5. d = \{'a':1, "b":2\}
  6. print\_info1(3, 4, 5, 6) \#True
  7. print\_info1(3, list) \#False
  8. print\_info1(3, \*list) \#True \*:分开传入
  9. print\_info2(3, 4, 5, 6) \#False
  10. print\_info2(3, a=4, b=5, c=6) \#True
  11. 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!

  1. @classmethod
  2. def acc(cls):
  3. """
  4. 类方法,隐含参数cls,不能调用实例方法,
  5. 可以被实例方法调用
  6. """
  7. @staticmethod
  8. def aee():
  9. """
  10. 静态方法,没有参数,不能调用实例方法,
  11. 可以被实例方法调用
  12. """

__name__

  1. 例如b脚本导入a
  2. a脚本执行aa\_\_name\_\_ = \_\_main\_\_;
  3. 其他文件导入,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的小写为小写字母

发表评论

表情:
评论列表 (有 0 条评论,278人围观)

还没有评论,来说两句吧...

相关阅读

    相关 LeetCode笔记

    [23. Merge k Sorted Lists][] > 要点: > > 1. 学会数据结构PriorityQueue(优先队列)的用法, 通过给优先队列传入自定义