1.Python中的[1:]、[::-1]
- [1:]
去掉列表中第一个元素(下标为0),去后面的元素进行操作 - [::-1]
从最后一个元素到第一个元素复制一遍,即“反转”
2.运算符“//”
- 取整除 - 返回商的整数部分(向下取整)
- 例如:9//2 =>4, -9//2=>-5
3.list(map(int,input().split()))
- input().split()
- input()接收多个用户输入需要与split()结合使用
- 例如:
host, port, username, passwd, dbname = input("请输入服务器地址,端口号,用户名,密码及数据库名,空格隔开:").split()
# 注意input()的返回类型是str
print(host,port,username,passwd,dbname)
#结果:
请输入服务器地址,端口号,用户名,密码及数据库名,空格隔开:10.1.1.71 22 root 123456 db_name
10.1.1.71 22 root 123456 db_name
- list(map(int,input().split()))
- 创建一个列表,使用 split() 函数进行分割
- map() 函数根据提供的函数对指定序列做映射,就是转化为int型
- map用法
list(map(square, [1,2,3,4,5])) #使用 list() 转换为列表[1, 4, 9, 16, 25]
- 在同一行连续输入整数(用空格隔开)->
map(int,input().split())
a,b,n=map(int,input().split())
print(a,b,n)
#输入
>>>3 5 10
#输出
>>>3 5 10
- map(int,str(i))
- 假设i=字符串’ABCD’,那么
list(map(int,str(i))
为[‘A’,‘B’,‘C’,‘D’]
- 假设i=字符串’ABCD’,那么
4.& 按位与运算符
- 运算规则
按位与运算符&的运算规则是:只有参与&运算的两个位都为 1 时,结果才为 1,否则为 0。例如1&1为 1,0&0为 0,1&0也为 0, - 按位与运算符解释
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nNycL3bV-1681268155198)(位运算符.png)] - 应用
判断奇偶数->蓝桥杯 ->数字三角形
import os
import sys
N=int(input())#三角形的行数
h=[list(map(int,input().split())) for i in range(N)]
#print(h)
for i in range(1,N):
for j in range(i+1):
if j==0:#最左边元素由右上角获得
h[i][j]=h[i][j]+h[i-1][j]
elif i==j:#最右边元素由左上角获得
h[i][j]=h[i][j]+h[i-1][j-1]
else :#其它元素由上一行的最大值获得
h[i][j]+=max(h[i-1][j-1],h[i-1][j])
if N&1:#结果在最后一行的中位数,此行为判断是否为奇数,若N&1==1,即为奇数
print(h[-1][N//2])
else:
print(max(h[-1][N//2-1],h[-1][N//2]))
5.冒泡排序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V0k32340-1681268155199)(冒泡排序.png)]
import os
import sys
# 请在此输入您的代码
'''
全逆乱序的冒泡排序次数为N*(N-1)/2
15*14/2=105
14*13/2=91
100次交换至少需要15个字母
onmlkjihgfedcba
105-100=5,只需把第6个字母往后移到第1位即可
'''
print("jonmlkihgfedcba")
6.date.isoweekday()
它使用日期类对象并以整数形式返回星期几,其中星期一是 1,星期日是 7。它与 date.weekday() 函数相同,我们认为星期一是 0,在接下来的几天里递增 1。
- 导入模块
import datetime
- 类
from datetime import date
- 用法
isoweekday()
- 参数
无参数
7.创建二维数组
- [ 0 ] * n 是浅拷贝, 也就是把一个列表重复了 n 次,是 = 号复制(注意不是浅拷贝,= 与浅拷贝的list id是不同的);
- [[0]*n]*m 这种方式是直接将 [0]*n 复制了m遍
- [0 for _ in range(n)] 才是创建,深拷贝
- 二维数组的创建方法
m,n = 3,4
dp1 = [[0] * n ] * m
dp2 = [[0 for _ in range(n) ] for _ in range(m)]
dp3 = [[0] * n for _ in range(m)]
dp1[0][2] = 3
dp2[0][2] = 3
dp3[0][2] = 3
print('dp1:',dp1)
print('dp2:',dp2)
print('dp2:',dp3)
结果:
dp1: [[0, 0, 3, 0], [0, 0, 3, 0], [0, 0, 3, 0]]
dp2: [[0, 0, 3, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
dp2: [[0, 0, 3, 0], [0, 0, 0, 0], [0, 0, 0, 0]]
#第一种方法不行,每一行的改变都会改变其他行
#第二种、第三种方法均可
8、a, b = b, a + b的含义
- 先计算“=”右边的 a+b
- a=b
- b=a+b
- 图解交换赋值
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8WFNbRdQ-1681268155199)(交换赋值.png)]
9、 key=lambda 元素: 元素[字段索引]用法
- x:x[]字母可以随意修改,排序方式按照中括号[]里面的维度进行排序,[0]按照第一维排序,[2]按照第三维排序
- lambda 函数需要:1.接收1个参数;2.返回一个值,且返回值是可比较大小的。
- l.sort(key=lambda x:x[1]),与sort连用,表示sort按x[1]维度排序
10、x,y=y,x//2 计算顺序
- 先计算x//2
- x=y
- y=x//2
11、sort与sorted的区别
- sort 是应用在 list 上的方法,属于列表的成员方法,sorted 可以对所有可迭代的对象进行排序操作。
- list 的 sort 方法返回的是对已经存在的列表进行操作,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
- sort使用方法为ls.sort(),而sorted使用方法为sorted(ls)
12、全排列组合——itertools.combinations(字符串,长度)
- itertools库combinations和permutations
- combinations和permutations返回的是对象地址,原因是在python3里面,返回值已经不再是list,而是iterators(迭代器), 所以想要使用,只用将iterator 转换成list 即可。
- combinations(p, r)
- 该方法重点在组合
- p是一个list参数
- r是数字,r长度的tuple,按顺序排列,没有重复元素
- permutaitions(p,r)
- 该方法重在排列
- p是一个list参数
- r是数字,r长度的tuple,所有可能的顺序,没有重复的元素
import itertools
list_1=[1,2,3,4]
list_2=list(itertools.combinations(list_1,3))
list_3=list(itertools.permutations(list_1,3))
list_4=itertools.combinations(list_1,3)
list_5=itertools.permutations(list_1,3)
print(list_2)
print(list_4)
print(list_3)
print(list_5)
#结果
"""
D:\Anaconda\Anaconda\python.exe D:\PychramPrograms\LanQiaoBei\测试.py
[(1, 2, 3), (1, 2, 4), (1, 3, 4), (2, 3, 4)]
<itertools.combinations object at 0x000001657E605720>
[(1, 2, 3), (1, 2, 4), (1, 3, 2), (1, 3, 4), (1, 4, 2), (1, 4, 3), (2, 1, 3), (2, 1, 4), (2, 3, 1), (2, 3, 4), (2, 4, 1), (2, 4, 3), (3, 1, 2), (3, 1, 4), (3, 2, 1), (3, 2, 4), (3, 4, 1), (3, 4, 2), (4, 1, 2), (4, 1, 3), (4, 2, 1), (4, 2, 3), (4, 3, 1), (4, 3, 2)]
<itertools.permutations object at 0x000001657E787A40>
"""
13、利用int进行进制转换
- 描述
- int() 函数用于将一个字符串或数字转换为整型。
- 语法
class int(x, base=10)
- 参数
- x – 字符串或数字。
- base – 进制数,默认十进制。
- 若 x 为 str,则 base 可略可有。
- base 存在时,视 x 为 base 类型数字,并将其转换为 10 进制数字。
- 若 x 不符合 base 规则,则报错。
- 例如:将九进制的(2022)转化为十进制
print(int('2022',9))
- 注意:2022必须为字符串
14、string.count(sub_string, start, end)统计字符串中某字符出现的次数
- 参数含义
- string
- 待统计的字符串
- sub_string
- 希望检测的字符串,即希望检测出sub_string在string中出现的次数。
- 不可省略的字符串参数
- start
- string字符串开始搜索的位置
- 可省略
- end
- string字符串结束搜索的位置
- 可省略
- string
-
例如
只有一个参数
"MacBook Pro".count("o")
#结果:3
指定起始位置
>>> "MacBook Pro".count("o")
3
指定起始和末尾位置
>>> "MacBook Pro".count("o", 6, 9)
0
#注意:末尾位置不包含9,包含9-1=8