一、比较与交换
1.比较并输出大的
print(a if a>b else b)
2.交换两个元素
a,b = b,a
list1[i],list[j]=list1[j],list[i]
二、排序
1.字符串排序
s = 'aaccbgd' print(''.join(sorted(list(s))))
2.数组排序
l = [4,5,2,3,9] print(sorted(l)) #从小到大排序 print(sorted(l,reverse=True)) #从大到小排序
3.字典排序,转为列表
d = {3: 2, 2: 1, 1: 3} l1 = sorted(d.items(),key=lambda x:x[0]) #根据key排序 l2 = sorted(d.items(),key=lambda x:x[1]) #根据value排序
三、转换
1.字符串-数组
s = 'abcde' l = list(s)
2.数组-字符串
l = [1,2,4,4,3] #s = str(l) #直转 s = ''.join([str(x) for x in l]) #使用join连接需转为string格式
3.字典-数组
d = {3: 2, 2: 1, 1: 3} l1 = sorted(d.items(),key=lambda x:x[0]) #根据key排序
4 字典-数组,将两个列表分别转为字典的key与value
l = [1, 2, 4, 4, 3] s = ['s', 'y', 'o', 'm', 'z'] d = dict(zip(l,s))
5.ip地址-32位整数
ip="192.168.1.1" list_ip = list(map(int,ip.split("."))) res = "" for i in list_ip: res += str("%08d" % (int(bin(i)[2:]))) print(int(res,2))
四、遍历(循环)
1.单层遍历数组for循环
value = 0 for i in range(100): # 累加1-100 value += i print(value)
2.多层遍历数组for循环
l = [2,4,5,7,3,8,1,3] n = len(l) for i in range(n): #冒泡排序 for j in range(n-i-1): if l[j] > l[j+1]: l[j],l[j+1]=l[j+1],l[j]
3.while遍历数组
i = 1 while i <= 9: #打印99乘法表 a = 1 # 列数计数器 while a <= i: print("%d * %d = %d" % (a, i, i * a), end="\t") a += 1 print("") i += 1
五、查找
1.字符串中查找第一个出现元素位置,无返回-1
print(s.find("a"))
2.列表中查找第一个出现的元素的位置,无报错
print(list1.index("hello"))
3.字段内查找对应的key的value,无返回第二个元素(可缺省)
print(dict1.get("k1")) print(dict1.get("k1",0))
六、递归
def Fibonacci(n): #斐波那契数列 if n == 1 or n == 2: return 1 elif n == 3: return 2 else: return Fibonacci(n - 1) + Fibonacci(n - 2)
七、语句简化
1.快速赋值/初始化
num,s,l,d = 0,"yes",[],{}
2.三目运算符
flag = True print(1 if flag else -1)
3.列表推导式
x = [1,1,1] y = [1,2,3] z = [a+b for a in x for b in y] #返回各种相加的结果 q = [a+b for a,b in zip(x,y)] #返回对应下标相加的结果
4.lamda表达式
x = lambda i:i**2 #使用lambda简化函数内容 print(x(4))
d = {3: 2, 2: 1, 1: 3} l1 = sorted(d.items(),key=lambda x:x[0]) #使用lamda指定排序的字段:根据key排序 l2 = sorted(d.items(),key=lambda x:x[1]) #使用lamda指定排序的字段:根据value排序