面向对象

类型指示器

装饰器语法

可变参数

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)