博文

字符串 string

 python 字符串是无法改变的!!!但是list下是可变的 字符串读入不见strip(), 你的二元关系可能会出错,也就是Input ord('a') = 97 chr(65) = 'A'  英文大小写字母是从 65 ~ 122  int 转 string 是 str() string[start : end : step] 根据string的加减 可以在下标处加减 例如:s[:a] + 'good' + s[a:] 在s下标为a处插入 'good' s.strip() 去掉string开头的' '  '\t'  '\r' '\n' s.split() 把string按照空格分割 并把 string list化 s.find('字串') 如果有返回下标,如果没有返回 -1 find查找句子单词时: a = ' {} '.format(string).find(' {} '.format(worlds))  返回的为第一个单词下标,防止查找内嵌单词,所以前后加空格。 判断条件尽量不写else 能够准确的写 elif s.replace('old','new') 为全替换 返回的是字符串,但不会修改字符串 字符串反转 s = s[:: - 1] 或者 s = ''.join(reversed(s)) s.index(i) 查找非常方便! python 单个字符不能减 ‘9’- ‘0’=  9 必须 ord('9') - ord('0') = 9 print(' '.join(list)) 这里的list中元素必须是 string 如果是int类 采用 print(' '.join(map(str, list))) 这里 list 是一维数组 print(f'{value} : {value2}') - > value : value2 比较方便使用 如果读入的是字符串 adasdasds 转化成数组用 li = list(input()) li = [list(...

列表 数组

关于数值长度占比与内存的关系,数值位数越高占比内存越大,例如某些算法题目对MLE的控制,如果不取模一个数,将会超出内存限制 1.Stack 移除元素 list.pop() or list.pop(index)  list.pop()返回值为最后一个元素,所以list现在为删除最后一个元素的list a.pop()  是 Python 列表的一个方法,用于移除并返回列表中的最后一个元素。如果你想要移除并返回列表中的第一个元素,应该使用  a.pop(0) 。 list.extend() 一次性追加多值 可以填入range(20, 900)等 输入例子:可以多行输入或任意几行输入数据到 list li = [] while True : try : s = list ( map ( int , input ().split())) li.extend(s) except : break a = [0] * 50  set 自动排序去重 a = set(map(int, input().split())) 两个set len(setA - setB) = len(setB - setA) = 两者交集元素个数 list.count(var) 输出为list中var的个数 列表元素['a', 'b'] => print('.'join(list)) => a.b m = [int(i) for i in input().strip()] 字符串数字没有分开可以将其分开 a = set()  a.add()  len(a) 字符串进入set中如果连续则为 1 例如:set('11111') => {' 1 '}     len(set) = 1 ans[-3:] 则为倒数 3 个 元素  for i in set() 可以遍历set 元素类型不变 from math import floor 导入的写法! li = [False] * 2000000 bool数组的创建 其实扩展库np 创建数组是根据原有的语法创建的:     arr = [ [0] * n for i in r...

循环结构

a = min(List(A)) 直接得出具体数 python 不需要交换函数: a, b = b, a print('%d %d' %(a, b)) 只需一个%,后面加()即可 print('%02d' % t) 补零操作 t 是个位数补0 [x for x in list if x is not max(list)] 循环的简便写法 数组创建 d = collections.defaultdict(int)  记得导入 import collections for key, group in itertools.groupby(s):  记得导入 import itertools     print(key, list(group)) groupby() 的作用就是 把可迭代对象中相邻的重复元素挑出来放一起 str() string化 count(str(1)) 查询 '1' 的个数,str().count(str(1))   [::-1] 倒过来 [5:] 从第五个到最后 [::2] 每次跳2个 [:5] 0到5 for 循环递减  for i in range ( len (li) - 1 , - 1 , - 1 ): python for循环内改变 i 值不能够再循环内改变值,因为range(1,5)是list内元素的遍历,并不影响 i 的赋值

python 分支语句语法练习

保留小数 %.f  保留有效数字 %.g cout保留的默认6位有效数字 pow开根号 chr(),ord() ceil() 向上取整 print("string", end = ''), end = '' 不换行打印 map(float, input().sprit()) 注意float float('inf') float('-inf') 表示无穷大,无穷小 exit(0) 相当与return 0      如果 不是双休:if x != 6 and x != 7 print('{:.2f}**{:.2f}'.format(13, 15))     输出 13.00**15.00 读取字符用str[0],str[1],... 读取成链表:list = list(map(int, input().sprit())) s = s.replace('old', 'new', count)  s.replace是一个it 字符串截取输入就用切片[:11]