Skip to content

Commit 753c8ba

Browse files
committed
增添了新筹备
1 parent 0fd6c48 commit 753c8ba

File tree

40 files changed

+8464
-7
lines changed

40 files changed

+8464
-7
lines changed

050 map/main.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
# oj算法题输入
2+
a, b = map(int, input().split())
3+
4+
# 自己快速写一个举例列表
5+
list_of_ints = list(map(int, "1234567"))
6+
7+
8+
# 转大写
9+
def upper(s):
10+
return s.upper()
11+
12+
13+
lst = list(map(upper, ['sentence', 'fragment']))
14+
print(lst)
15+
# ['SENTENCE', 'FRAGMENT']

050 setOption/setOption.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,4 @@
1919

2020
s3: set
2121
# 如何实现一个有序集合
22+

050 setOption/字典套集合.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
graph = {
2+
1: {1, 2, 3},
3+
2: {2, 3},
4+
3: {1},
5+
}

050 setOption/无重复列表.py

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
import _ctypes
2+
3+
4+
class SetList:
5+
def __init__(self):
6+
self.lst = []
7+
self.dic = {}
8+
9+
def add(self, val):
10+
if val in self.dic:
11+
return
12+
else:
13+
self.dic[val] = len(self.lst)
14+
self.lst.append(val)
15+
16+
def __iter__(self):
17+
for item in self.lst:
18+
yield item
19+
20+
def __contains__(self, item):
21+
return item in self.dic
22+
23+
def remove(self, item):
24+
if item not in self.dic:
25+
return
26+
delIndex = self.dic[item]
27+
self.dic.pop(item) # 删除dic里的数据
28+
popRes = self.lst[delIndex]
29+
self.lst[delIndex] = self.lst[-1]
30+
self.dic[self.lst[-1]] = delIndex
31+
self.lst.pop()
32+
return popRes
33+
34+
def __str__(self):
35+
res = "<"
36+
for i, item in enumerate(self.lst):
37+
res += str(item)
38+
if i != len(self.lst) - 1:
39+
res += ", "
40+
return res + ">"
41+
42+
__repr__ = __str__
43+
44+
45+
sl = SetList()
46+
print(sl)
47+
48+
sl.add(13)
49+
sl.add(15)
50+
sl.add(14)
51+
print(sl)
52+
sl.remove(15)
53+
print(sl)
54+
sl.remove(14)
55+
print(sl)
56+
sl.remove(13)
57+
print(sl)

050 try catch完整写法/main.py

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,22 @@ def f():
2222

2323

2424
for i in range(10):
25-
print(i)
25+
print(i)
26+
27+
28+
# heapq内置库代码
29+
# Short-cut for n==1 is to use max()
30+
# if n == 1:
31+
# it = iter(iterable)
32+
# sentinel = object()
33+
# if key is None:
34+
# result = max(it, default=sentinel)
35+
# else:
36+
# result = max(it, default=sentinel, key=key)
37+
# return [] if result is sentinel else [result]
38+
#
39+
# # When n>=size, it's faster to use sorted()
40+
# try:
41+
# size = len(iterable)
42+
# except (TypeError, AttributeError):
43+
# pass

050 小顶堆/main.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
print(heapq.heappop(h)) # 每次弹出的时候都会维护一下小顶
99
print(h)
1010

11-
1211
#
1312
# https://leetcode.cn/problems/qn8gGX/
1413

1514

1615
# 序列比较默认比较的是第一个元素
1716

18-
17+
print(heapq.nlargest(2, [1, 2, 3, 4, 5, 3, 2, 1]))
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# -*- encoding: utf-8 -*-
2+
"""
3+
PyCharm main
4+
2022年05月26日
5+
by littlefean
6+
"""
7+
from typing import *
8+
from dataclasses import dataclass
9+
10+
11+
@dataclass
12+
class Card:
13+
rank: str
14+
suit: str
15+
16+
17+
card = Card("Q", "hearts")
18+
print(card == card)
19+
# True
20+
21+
print(card.rank)
22+
# 'Q'
23+
print(card)
24+
Card(rank='Q', suit="hearts")
25+
26+
27+
def main():
28+
return None
29+
30+
31+
if __name__ == "__main__":
32+
main()
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
from collections import namedtuple
2+
3+
# 两种方法来给 namedtuple 定义方法名
4+
User = namedtuple('User', ['name', 'age', 'id'])
5+
user = User('tester', '22', '464643123')
6+
7+
print(user)
8+
# User(name='tester', age='22', id='464643123')
9+
10+
# *--------------------------------
11+
# https://www.manongdao.com/article-2068272.html
12+
from enum import IntEnum
13+
14+
NAME, AGE, SEX, EMAIL = range(4)
15+
s = ('jim', 16, 'male', 'jim8721 @ gmail.com')
16+
17+
18+
class StudentEnum(IntEnum):
19+
NAME = 0
20+
AGE = 1
21+
SEX = 2
22+
EMAIL = 3
23+
24+
25+
print(StudentEnum.NAME)
26+
print(s[StudentEnum.NAME])
27+
isinstance(StudentEnum.NAME, int)

050 有序字典/main.py

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,20 @@
11
from collections import OrderedDict
22

3+
dic = {}
34
o = OrderedDict()
4-
o["a"] = 15
5+
string = "aoiwevnaekl"
6+
for char in string:
7+
dic[char] = 1
8+
o[char] = 1
9+
10+
print(dic)
511
print(o)
6-
o["b"] = 20
12+
13+
dic.pop("o")
14+
o.pop("o")
15+
16+
print(dic)
717
print(o)
8-
o["b"] = 25
9-
print(o)
18+
19+
# 3.7 字典和orderedDict一样有顺序了
20+
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# 合并字典
2+
3+
dict1 = {'a': 1, 'b': 2}
4+
dict2 = {'b': 3, 'c': 4}
5+
merged = {**dict1, **dict2}
6+
print(merged)
7+
# {'a': 1, 'b': 3, 'c': 4}
8+
9+
# 如果存在相同的key,来自第一个字典的key会被覆盖。
10+

0 commit comments

Comments
 (0)