>>> matrix = [[0 for i in range(6)] for i in range(5)] #注意内外层区别。
>>> matrix = [[0 for _ in range(6)] for _ in range(5)] #因为i不用,可以用缺省符号‘_’代替
l1 = [ x for x in range(10) ]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
# 创建0-9的列表
l2 = [ x + 1 for x in range(10) ]
# [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 创建1-10的列表
l3 = [ x for x in range(10) if x % 2 == 0 ]
# [0, 2, 4, 6, 8]
# 10以内偶数列表
nums = [1,1,2,2,3,4]
d = {} #字典
for i in nums:
d[i] = d.get(i, 0) + 1 #若字典中不存在i,则i词频为1
print(d) #{1: 2, 2: 2, 3: 1, 4: 1}
def closedIsland(self, grid: List[List[int]]) -> int:
#定义dfs辅助函数
def dfs(grid, i, j):
...
if grid[i][j] == 0 and (i == 0 or i == m-1 or j == 0 or j == n-1):
global flag #使用时也声明全局变量
flag = False
return
...
dfs(grid, i, j+1)
#调用dfs
m, n = len(grid), len(grid[0])
res = 0
for i in range(m):
for j in range(n):
if grid[i][j] == 0:
global flag #定义时声明全局变量
flag = True
dfs(grid, i, j)
if flag:
res += 1
return res
def closedIsland(self, grid: List[List[int]]) -> int:
#定义dfs辅助函数
def dfs(grid, i, j):
...
if grid[i][j] == 0 and (i == 0 or i == m-1 or j == 0 or j == n-1):
nonlocal flag #使用外部变量时声明
flag = False
return
...
dfs(grid, i, j+1)
#调用dfs
m, n = len(grid), len(grid[0])
res = 0
for i in range(m):
for j in range(n):
if grid[i][j] == 0:
flag = True #定义时不用声明nonlocal
dfs(grid, i, j)
if flag:
res += 1
return res