a = input() # 取出一行
a = list(map(int, input().split())) # 取出一行,并将行中的数据以空格分割,并对分割后的数据变成int类型,生成list
a = eval(string) #对表达式string进行数学运算
a = " ".join(arr) # 将list 类型的arr以空格拼接成字符串
arr.sort() # 对arr排序:升序,无返回值
a = arr[::-1] # arr逆序
a = math.sqrt(data) # 求data的平方根
string = '0' * n # 字符串复制,string为长度为n,内容皆为 '0'组成
arr = [0] * b # arr复制,长度为n,元素皆为 0
result.isdigit() # 判断result是否为数字类型
result.isalpha() # 判断result是否为字母字符串类型
result.isalnum() # 判断result是否为数字或者字母字符串类型
string = string.swapcase() # 调整字符串的大小写:即大写的转换为小写,小写的转换为大写
zip(xList, yList) # 建立xList 与yList的映射
bin(data) # 正整数转化为二进制数据: bin(5) --> '0b101'
进制转换
16进制:0xA - 10 0xB - 11 0xC - 12 0xD - 13 0xE - 14 0xF - 15
字符串大小写转换:
string.upper() # string转换为大写
string.lower() # string转换为小写
ASCII码转换:
ord('A') = 65 ord('Z') = 90 ord('a') = 97 ord('z') = 122
chr(65) = 'A' chr(65) = 'Z' chr(97) = 'a' chr(122) = 'Z'
等差数列:
差值为3:则第n个数为: N = 3n - 1
等差数列的和为: SUM = (start + end) * n / 2 = ((2 + 3*n - 1) * n) / 2
查找两个字符串a,b中的最长公共子串:
可以利用滑动窗口思路进行处理,窗口起始大小为短字符串的长度,内部遍历则对长字符串截取,截取长度为当前窗口的长度:long[j:j+length]
瑞年:能被400整除 or 能被4整除且不能被100整除,瑞年的2月份是29天,非瑞年则为28天。
每个月对应的天数:(数手指)需要注意7、8月份天数为31天。
# 排列组合
# 字典排序 dict_res = {1:[1,2,3], 2:[-1,1, 1], 3:[1,2,2]}
# key=lambda x: [x[1][0], x[1][1], x[1][2]] 表示按照字典中的元素value的3个值进行升序排序,即 order by 列0,列1,列2 ASC
res = sorted(dict_res.items(), key=lambda x: [x[1][0], x[1][1], x[1][2]])
# 排序后:res = {2:[-1,1,1], 1:[1,2,3], 3:[1,2,2]}
from itertools import permutations
x = permutations(['A', 'B', 'C'], 3) # arr中一次性取3个元素做全排列
print(list(x)) # [('A', 'B', 'C'), ('A', 'C', 'B'), ('B', 'A', 'C'), ('B', 'C', 'A'), ('C', 'A', 'B'), ('C', 'B', 'A')]
from itertools import product # 注意repeat 参数必填
random_list = list(product(['西藏','瀑布','湖水'], repeat=3)) # 从arr中重复取3次元素做全排列
print(random_list)
import bisect
# arr升序排列, index为arr插入data[i]时的位置,len(arr)-p 即为逆序对的数量
# 比如: [1,3,5,6,7,8] 中插入4,即index= 2,即逆序对为 6 - 2 = 4,也就是比4大的数有4个
p = bisect.bisect(arr, data[i])
import math
a = math.sqrt(data) # 求data的平方根:浮点数