耿舒涵
-
初始化矩阵可使用 [[0]*n for _ in range(n)]建立一个n行n列的矩阵;
-
字符串分割函数调用,
map(int, input().split())将输入的字符串转换为列表: -
input().split():input()函数获取输入,返回一个字符串。split()方法将这个字符串按照空格分割成一个列表,每个元素都是一个子字符串。split函数默认以空格分割,也可传入参数以指定字符分割,返回列表。 -
map(int, ...):map()函数接收两个参数,第一个参数是转换函数(在这里是int,表示将字符串转换为整数),第二个参数是需要转换的可迭代对象(在这里是上一步得到的字符串列表)。map()函数会将int函数应用到列表的每一个元素上,从而将字符串列表转换为整数列表。 -
list(map(...)):map()函数返回一个迭代器,为了得到实际的列表,则会使用list(map(...))。
例:若输入 "1 2 3 4 5",那么 input().split() 返回 ['1', '2', '3', '4', '5'],然后 map(int, ...) 会将这个列表转换为 ['1', '2', '3', '4', '5'],最后 list(map(...)) 会返回 [1, 2, 3, 4, 5]。
-
eval()函数:对于一个字符串形式的表达式,并且想在运行时动态地计算这个表达式的结果时使用。例如字符串"2 + 3 * 4",在运行时计算这个表达式的值,则使用eval()函数。为了避免安全问题,通常建议使用更安全的替代方法,比如ast.literal_eval(),它只安全地求值字面量表达式(如字符串、数字、元组、列表、字典等),而不执行任意代码。 -
数据类型概述:内置
Number,String,List,Tuple,Set,Dictionary。 -
字符串转换整数:
int('35',8)第一个参数为字符,第二个参数为转化成八进制整数。元组与列表类似,但元素不能被修改。 -
字符串分割
str.split()s = "Hello, World!" words = s.split(", ") # 分割成 ['Hello', 'World!'] print(words) -
字符串切片
s[start:end:stride]
start:切片的起始索引(包含),即从哪里开始切片。
end:切片的结束索引(不包含),即切片到哪里结束。
stride:步长
a = "Hello, World!"
substring = a[7:12] # 提取从索引 7 到索引 12 的字符,不包括索引 12
print(substring) # 输出:World
substring = a[:5] # 从索引 0 到索引 5,不包括索引 5
print(substring) # 输出:Hello
substring = a[7:] # 从索引 7 到字符串末尾
print(substring) # 输出:World!
substring = a[::2] # 每隔 2 个字符取一个字符
print(substring) # 输出:Hlo ol!
8. 截取指定的单一字符:split[idx]。
-
global关键字: 用于在函数内部声明一个变量为全局变量。 ` x = 10 # 全局变量def modify_global(): global x # 声明 x 为全局变量 x = 20 # 修改全局变量的值
modify_global() print(x) # 输出:20`
-
nonlocal关键字:用于在嵌套函数中声明一个变量为外部(但非全局)作用域中的变量。与global关键字不同,nonlocal关键字允许在嵌套函数中修改外层函数中的局部变量,而不需要使用全局变量。 -
lambda匿名函数:也称为“lambda 表达式”。一种定义简单的函数的简介方式,通常用于需要一个简单函数但不想用def关键字定义完整函数体的情况。
lambda 函数只能包含一个表达式,不能包含多条语句。且一定程度上降低代码可读性
add = lambda x, y: x + y
print(add(2, 3)) # 输出:5
numbers = [1, 2, 3, 4, 5]
squared = list(map(lambda x: x ** 2, numbers))
print(squared) # 输出:[1, 4, 9, 16, 25]
points = [(1, 2), (3, 1), (5, 0)]
points.sort(key=lambda x: x[1])
print(points) # 输出:[(5, 0), (3, 1), (1, 2)]