导图社区 Python总结
python基础应用的总结,整理了 数据结构、控制语句、运算符、随机数的知识,快来看看吧!
编辑于2023-05-21 10:54:38 北京市Python
数据结构
列表list
列表生成式
list = [... for i in range()]
[(x,y) for x in list1 for y in list2 if ...]
截取
list[start_index:end_index:step]
查找
list[index] -1为倒序
list[a:b] 左闭右开原则
list.index('xx',a,b) 在第a+1到b间找xx的位置
列表元素修改
list[n]= x
list[n].replace('x','xxx')
list[n:m]=[x,x,x...]
增加
list.append(x/new_list) 在列表末尾添加单个数据元素/另一个列表(整体)
list.extend([x,x...]/new_list) 末尾添加多个元素,打开列表加入元素
list.insert(a,b) #在a位置添加b
list1 + list2
删除
list.remove(x) 从列表中移除一个指定元素x,如果有重复只删除第一个,无返回值
list.pop(n) 移除第n+1个元素,如果不指定参数,将移除列表中最后一个元素,有返回值
del list[n] 删除指定的n+1项元素 (不常用)
拷贝
b=a 当修改b时,a一起变
b = a.copy() 当修改b时,a不变
判断列表长度
len(list)
排序
list.sort(reverse=True) 默认升序,加了reverse为倒叙,改变了原列表
new_list = sorted(list,reverse=True) 产生新的列表
list.reverse() 无返回值
计数
list.count('xx')
元组tuple
一旦确定将无法直接增删改,但内部的东西可以
分割
tpl[a:b]
字典dict
创建
d = {'key1':'value1','key2':'value2'...}
d = dict(key1 = 'value1',...)
d = dict(zip(['x','x','x'],[x,x,x]))
key = ['xx','xx'...] value=[xx,xx,'xx'...] d={k:v for k,v in zip(key,value)}
增加
d['new_key'] = value
d.update(xx=xx)
删除
del d['key'] 删除指定key-value对
d.clear() 清空字典元素
修改
d['old_key'] = new_value
查找
d['key'] 若查找的不存在,返回keyerror
d.get('key') 若查找的不存在,None
d.setdefault(key, default=None) default是键不存在时设置的默认键值
d.items() 得到key和value对
集合set
去掉重复值
创建
s = {xxx,xxx}
s = set('str'/ range(n)/[xxx,xxx...]/ (xx,xx))
增加
s.add(n) 一次添加一个元素
s.update({xx,xx}/[xx,xx]/(xx,xx)) 添加多个
删除
s.remove(n) 删除指定元素,不存在时报错
s.discard(n) 删除指定元素,不存在时不报错
s.pop() 一次删除一个任意元素
s.clear() 清空集合中元素
集合运算
s1.intersection(s2) 或 s1&s2 交集
s1.union(s2) 或 s1|s2 并集
s1.difference(s2) 或 s1-s2 差集(s1-s2和s2-s1不同)
s1.symmetric_difference(s2) 或 s1^s2 对称差集(s1,s2中不同时存在)
集合间关系
== / != 判断是否相等(与顺序无关)
s2.issubset(s1) 判断s2是否是s1子集
s1.issuperset(s2) 判断s1是否是s2的超集
s1.isdisjoint(s2) s1和s2是否有交集(True是没有交集)
字符串string
截取
s[起始位置(默认0):结束位置(默认最后):step]
分割
s.split(sep = ' ',maxsplit = ) 指定最大分割次数
s.rsplit() 从右侧开始劈分
合并
'x'.join(['xxx','xxx'...]/str/tuple) 使用指定字符连接多个字符串,需要一个包含字符串元素的列表作为输入
'x'.join(s.split())
剥离
s.strip(chars) 玻璃字符串收尾中指定的字符,允许有一个字符串参数,不指定时玻璃首尾空格和换行符
s.lstrip()/s.rstrip()
对齐
s.center(n,'xx') 居中对齐,第一个参数指定宽度,第二个指定填充符,默认空格;宽度小于原字符,返回原字符
判断
s.isidentifier() 有效标识符,即仅包含字母数字字母(a-z)和(0-9)或下划线(_)
s.isspace 是否全部由空白符组成(回车、换行、制表符)
s.isalpha() 是否全部由字母组成
s.isnumeric() 是否全部由数字组成
s.isdigit() 是否全部由数字组成
s..isalnum() 是否全部由字母和数字组成(不能有空格)
s..isdecimal() 是否全部由十进制数字组成
大小写
s.upper() 判断是否都是大写
s.lower() 判断是否都是小写
s.swapcase() 小写的变成大写,大写的变成小写
s.capitalize() 第一个字符大写,其他转换为小写
s.title() 每个单词的第一个字符转为大写
查询位置
s.index('x') 查找s中x第一次出现的位置,不存在报异常
s.find('x') 查找s中x第一次出现的位置,不存在报-1
s.rindex('x')/s.rfind('x')
s.startwith('xx)/s.endwith('xx') 是否以xx开头/结尾
替换
s.replace('a','b',n) 用b替换a,n为替换次数
格式化输出
%占位符,%s字符串,%i/%d整数,%f浮点数
print('xxxx%s,xxxx%d'%(s,d))
print('xxxx{0},xxxx{1}'.format(xx,xx))
print(f'xxx{a},xx{b}')
比较
>,<,==,is
== 与 is 的区别:== 比较value,is 比较id是否相同
控制语句
while 循环
while 条件/true: ...
for 循环
for i in list
for i in range()
if-elif-else
循环的终止
continue 跳出此次循环
break 跳出次层循环
运算符
算数运算符
+
-
*
/
%
**
//
位运算符
& 同为1时结果为1
| 通过0时结果为0
<< 向左移动n位,相当于乘2n
>> 向右移动n位,相当于除2n
比较运算
<
>
>=
<=
==
!=
逻辑运算符
and
or
not
赋值运算符
=
+=
-=
*=
/=
%=
**=
//=
成员运算符
in
not in
随机数
import random
n=random.randint(a,b) 产生一个随机数n,a<=n<=b
m=random.random() 产生一个随机浮点数m,0<=m<1.0
x=random.uniform(a,b) 产生a和b之间的随机浮点数,a和b不区分大小
ch=random.choice(sequence) 从sequence中随机选取一个元素(list, tuple, 字符串)
random.shuffle (x) 将x打乱顺序,重新排列(改变x)