面向对象
类型指示器
装饰器语法
可变参数
for i, j in [('Alice', 18), ('Bob', 22)]:
print(i, 'is', j, 'years old')
Alice is 18 years old
Bob is 22 years old
>>>ord('a')
97
txt = "Hello my FRIENDS"
x = txt.lower()
from collections import deque
name = deque(["aaa", "bbb", "ccc", "ddd"])
print(name)
name.append("xxx")
print(name)
name.append("yyy")
print(name)
print(name.popleft()) # 不可以带参数
print(name)
deque(['aaa', 'bbb', 'ccc', 'ddd'])
deque(['aaa', 'bbb', 'ccc', 'ddd', 'xxx'])
deque(['aaa', 'bbb', 'ccc', 'ddd', 'xxx', 'yyy'])
aaa
deque(['bbb', 'ccc', 'ddd', 'xxx', 'yyy'])
class KthLargest:
def __init__(self, k: int, nums: List[int]):
# minHeap w/ K largest integers
self.minHeap, self.k = nums, k
heapq.heapify(self.minHeap)
while len(self.minHeap) > k:
heapq.heappop(self.minHeap)
def add(self, val: int) -> int:
heapq.heappush(self.minHeap, val)
if len(self.minHeap) > self.k:
heapq.heappop(self.minHeap)
return self.minHeap[0]
class Solution:
def containsDuplicate(self, nums: List[int]) -> bool:
hashset = set()
for n in nums:
if n in hashset:
return True
hashset.add(n)
return False
class Solution:
def islandPerimeter(self, grid: List[List[int]]) -> int:
visit = set()
def dfs(i, j):
if i >= len(grid) or j >= len(grid[0]) or i < 0 or j < 0 or grid[i][j] == 0:
return 1
if (i, j) in visit:
return 0
visit.add((i, j))
perim = dfs(i, j + 1)
perim += dfs(i + 1, j)
perim += dfs(i, j - 1)
perim += dfs(i - 1, j)
return perim
for i in range(len(grid)):
for j in range(len(grid[0])):
if grid[i][j]:
return dfs(i, j)