Python学习
欢迎来到煊煊周末小课堂!蹭了非常善良的热心学长的网课,六次感谢!让我们一起祝福他飞黄腾达!
因为之前的数分预备篇已经讲过一些Python的基础知识了,所以一些基础知识就不再讲了,让我们直接开始
常见的数据结构
列表
格式
L1=[1,2,'ab','abc']
print(L1[0])
print(L1[1:3])
#负索引,-1
print(L1[-1])
输出:
1
[2,'ab']
abc
列表的拼接
L1=[1,2,'ab']
L2=['hello']
print(L1+L2)
输出就可以实现拼接效果:
[1,2,'ab','hello']
追加元素
L1=[12,'a']
L1.append('abcd')
print(L1)
输出:
[12,'a','abcd']
删除元素
L1=[12,'a']
del L1[0]
print(L1)
输出:
['a']
弹出元素
(我觉得叫弹走元素更合适)
L1=[12,'a']
#弹走索引为1的元素
L1.pop(1)
print(L1)
输出:
[12]
如果pop里不加参数则是默认弹走最后一个元素
排序
L1=[1,3,2,5,4]
L1.sort()
print(L1)
#降序排列
L1.sort(reverse=True)
print(L1)
输出:
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]
临时排序(不改变列表内实际顺序):
L1=[1,3,2,5,4]
print(sorted(L1))
print(L1)
输出:
[1, 2, 3, 4, 5]
[1, 3, 2, 5, 4]
计数
L1=[1,1,2,3]
#L1中1出现的次数
print(L1.count(1))
输出为2
元组
元组和字符串一样是不可变对象,意味着不能增加,更改,删除其中元素,除此外其它语法和列表一样,不再赘述。
格式
t1=(12,23,'ab','abc')
集合
可变对象,内部元素不重复,花括号表示
格式
s1={1,2,3,3,3,4}
print(s1)
输出:
{1,2,3,4}
增加
s1={1,2,3,3,3,4}
s1.add(5)
print(s1)
输出:
{1,2,3,4,5}
删除
s1={1,2,3,3,3,4}
s1.remove(3)
print(s1)
输出:
{1,2,4}
交集&
s1={1,2,3,4}
s2={2,3,4,5}
print(s1&s2)
输出:
{2,3,4}
并集|
s1={1,2,3,4}
s2={2,3,4,5}
print(s1|s2)
输出:
{1, 2, 3, 4, 5}
与非集^
与非集就是两个集合不一样的元素(相当于并集-交集)
s1={1,2,3,4}
s2={2,3,4,5}
print(s1^s2)
输出:
{1,5}
转换set
string='abcde'
s1=set(string)
print(s1)
#也可以把列表转换成集合,可以实现去重的功能
L1=[1,2,2,3]
s2=set(L1)
print(s2)
输出为:
{'b', 'c', 'd', 'e', 'a'}
{1, 2, 3}
第一个输出顺序是不一定的
字典
键值对,key-value,极快的查询速度,用空间换取时间
格式
dict1={'name':'andy','age':32,'city':'BJ'}
元素获取get
print(dict1.get('age'))
输出:32
增加元素
这个不用add,直接定义即可
dict1['sex']='female'
print(dict1)
输出:
{'name': 'andy', 'age': 32, 'city': 'BJ', 'sex': 'female'}
修改元素
也直接修改就行
dict1['sex']='male'
print(dict1)
输出:
{'name': 'andy', 'age': 32, 'city': 'BJ', 'sex': 'male'}
删除元素
del dict1['sex']
print(dict1]
输出:
{'name': 'andy', 'age': 32, 'city': 'BJ'}
遍历字典
for key,value in dict1.items():
print(key+':',end=" ")
print(value)
输出:
name: andy
age: 32
city: BJ
单独显示key,value:
dict1.key()
dict1.value()
常用内置序列函数
enumerate
返回列表索引和对应值
L1=[1,2,'ab','abc']
for i,value in enumerate(L1):
print(i,value)
输出:
0 1
1 2
2 ab
3 abc
zip
将多个元素的序列配对
L1=['name','age','city']
L2=['andy',18,'BJ']
L3=list(zip(L1,L2))
print(L3)
输出(转换为字典类型也可以):
[('name', 'andy'), ('age', 18), ('city', 'BJ')]
reversed
逆序,不是按大小排列,只是颠倒顺序
L1=[1,3,2,4]
for i in reversed(L1):
print(i)
输出:[4,2,3,1]
列表推导式
L1=[]
for i in range(10):
L.append(i)
print(L1)
等价于
L=[i for i in range(10)]
print(L1)
再比如
L=[]
for i in range(10):
if i>5:
L.append(i)
print(L1)
等价于
L=[i for i in range(10) if i>5]
print(L1)
同理集合推导式就是变成花括号就行
函数
内置函数
比如绝对值函数abs()
,最值函数max()
等
math包函数,之前有介绍过,这里就不记录了。
自定义函数
格式:
def sayHello():
print("hello")
sayHello()
#再比如自定义绝对值函数
def myAbs(x):
if x>=0:
return x
else:
return -x
myAbs(-1)
匿名函数
关键字lambda
#求平方
(lambda x:x*x)(5)
#多个关键字
(lambda x,y:x+y)(2,3)
输出分别就是25和5
递归函数
经典例子求阶乘
def fact(n):
if n==1:
return 1
return n*fact(n-1)
格式化输出函数
import math
print("pi的值:{}".format(math.pi))
print("我的优点:{}和{}".format("美丽","大方"))
输出:
pi的值:3.141592653589793
我的优点:美丽和大方
再见!