字符串
字符串处理函数
len(str) |
str(x) |
eval(str) |
chr(u) |
ord(str) |
hex(num) |
oct(num) |
字符串处理方法
str.lower() |
str.upper() |
str.split(sep,maxsplit) |
str.join(iter) |
str.count(sub) |
string.find(str,start,end) |
string.index(str,start,end) |
str.startswith(obj) |
str.endswith(obj) |
string.swapcase() |
string.replace(str1,str2,count) |
str.strip() |
str.isalpha() |
str.isdigit() |
str.isalnum() |
str.isspace() |
字符串|列表操作符
+ |
* |
in |
列表
列表操作
list[index] |
list[start:stop:steps] |
list.append(object) |
list.insert(index,object) |
list.extend(iterable) |
list.pop([index]) |
list.remove(value) |
del list[index] |
del list[start:stop:step] |
list.clear() |
列表统计和计算
list.count(value) |
list.reverse() |
list.copy() |
list.index(value) |
len(list) |
max(list)/min(list) |
列表排序
list.sort(key=None,reverse=False) |
sorted(list,key=None,reverse=False) |
列表函数
cmp(list1,list2) |
len(list) |
max(list)/min(list) |
list(seq) |
列表方法
list.append(object) |
list.count(value) |
list.extend(seq) |
list.index(value) |
list.insert(index,object) |
list.pop([index=-1]) |
list.remove(value) |
list.reverse() |
list.sort(cmp=None,key=None,reverse=False) |
list.clear() |
list.copy() |
列表推导式
1、list = [Expression for i in range]
from random import randint
list = [randint(-10,10) for i in range(10)]
print(list)
2、newlist = [Expression for i in oldlist]
list1 = [182,920,459,945,880]
list2 = [i*2 for i in list1]
print(list2)
3、newlist = [Expression for i in oldlist if condition]
list1 = [182,920,459,945,880]
list2 = [i*2 for i in list1 if i>500]
print(list2)
二维列表
二维列表创建
1、直接创建list1
2、使用嵌套的for循环创建list2
3、使用列表推导式创建list3
list1 = [[0,1,2,3],[0,1,2,3],[0,1,2,3]]
list2 = []
for i in range(3):
list2.append([])
for j in range(4):
list2[i].append(j)
list3 = [[j for j in range(4)] for i in range(3)]
print(list1)
print(list2)
print(list3)
二维列表遍历
1、索引遍历list1
2、句柄遍历list2
3、枚举遍历list3
list1 = [[0,1,2,3],[0,1,2,3],[0,1,2,3]]
for i in range(len(list1)):
for j in range(len(list1[i])):
print(list1[i][j])
list2 = [[0,1,2,3],[0,1,2,3],[0,1,2,3]]
for i in list2:
for j in i:
print(j)
list3 = [[0,1,2,3],[0,1,2,3],[0,1,2,3]]
for x,i in enumerate(list3):
for y,j in enumerate(i):
print(x,y,':',j)
二维列表运算
1、二维列表相加
alist = [[1,2],[3,4]]
blist = [5,6]
print(alist+blist)
2、二维列表求极值
针对二维列表的每一个列表元素的第一个元素进行比较,如果列表元素的第一个元素相等,则继续比较第二个元素。
alist = [[10,'a'],[1,9,20],[12,1],[12,0]]
print(max(alist))
print(min(alist))
元组
元组是不可变序列,不能对它的单个值进行修改,但是可以通过重新赋值改变元组。
元组创建
1、创建空元组tup1
2、创建长度为1的元组tup2
3、直接创建元组tup3_1、tup3_2
4、函数创建元组tup4
tup1 = ()
tup2 = (1,)
tup3_1 = (1,2,3)
tup3_2 = 1,2,3
tup4 = tuple('123')
print(tup1)
print(tup2)
print(tup3_1)
print(tup3_2)
print(tup4)
元组删除
tup1 = (1,2,3)
print(tup1)
del tup1
字典
字典的增删改查
dict1 = {'姓名':'小红','年龄':14,'性别':'女'}
print(dict1['年龄'])
dict1['年龄']=28
print(dict1['年龄'])
dict1['身高']=165
print(dict1)
del dict1['年龄']
print(dict1)
del dict1
print(dict1)
字典函数、方法
k in d |
d.keys() |
d.values() |
d.items() |
d.get(k,<default>) |
d.pop(k,<default>) |
d.popitem() |
d.clear() |
len(d) |
字典遍历
for i in d:
<语句块>
for i in d.keys():
<语句块>
for i in d.values():
<语句块>
集合
创建集合
建立空集合必须用set()。
set1 = {1,2,3}
set2 = set('1')
print(type(set1),set1)
print(type(set2),set2)
集合操作符
S|T |
S-T |
S&T |
S^T |
S<=T或S<T |
S>=T或S>T |
集合处理方法
S.add(x) |
S.discard(x) |
S.remove(x) |
S.clear(x) |
S.pop(x) |
S.copy(x) |
len(S) |
x in S |
x not in S |
set(x) |
数据结构之间的不同
数据结构 | 是否可变 | 是否重复 | 是否有序 | 定义符号 |
列表list | 可变 | 可重复 | 有序 | [] |
元组tuple | 不可变 | 可重复 | 有序 | () |
字符串str | 不可变 | |||
字典dict | 键不可变 值可变 | 键不重复 值可重复 | 无序 | {} |
集合set | 可增删 不可改查 | 不重复 | 无序 | {} |
堆栈stack | ||||
队列queue |
函数
函数定义
通过保留字def定义函数。函数名可以是任何有效的Python标识符。
标识符区分大小写、以字母、数字、下划线组成,数字不能开头,不能用关键字作为函数名或者变量名。
函数调用
函数只有调用才会运行,一般情况下,主调函数和被调用函数之间会进行数据传输,被称为参数传递,有两种方式:值传递和引用传递。
值传递:将实参的副本传入函数,不改变实参本身。适用于字符串、数字等不可变类型。
引用传递:如果改变形参的值,那么实参也会发生同样的改变。适用于列表、字典等可变类型。
可选参数
函数调用过程中如果忘记写实参,将会产生异常报错,所以在定义函数的时候可以为某些参数指定默认值,构成可选参数。
可选参数一定要写在非可选参数的后面且必须指向不可变对象。
可变参数
可变参数是指传入参数的数量不一定,也称为不定长参数。
有两种定义形式:*parameter、**parameter
*parameter是将多个参数放到一个元组中。
**parameter是将多个(类似关键字)参数放到一个字典中。
关键字列表(Python 3.12)
False | break | finally | lambda | while |
None | class | for | nonlocal | with |
True | continue | from | not | yield |
and | def | global | or | |
as | del | if | pass | |
assert | elif | import | raise | |
async | else | in | return | |
await | except | is | try |
列表切片
用参数切片
list1 = ['今','儿','天','气','很','好']
#列表切片的顺序看参数step,step为正,表示从左向右,此时start<stop
print(list1[1:5:1])#['儿', '天', '气', '很']
print(list1[-5:-1:1])#['儿', '天', '气', '很']
print(list1[1:-1:1])#['儿', '天', '气', '很']
#step为负,表示从右向左,此时start>stop
print(list1[5:1:-1])#['好', '很', '气', '天']
print(list1[-1:-5:-1])#['好', '很', '气', '天']
print(list1[5:-5:-1])#['好', '很', '气', '天']
#错误情况
print(list1[1:5:-1])#[]
print(list1[5:1:1])#[]