第一次笔记

本文详细介绍了Python中的基本数据结构如列表、元组、集合和字典,以及它们的特点和操作。此外,还涵盖了排序算法(冒泡排序、插入排序和二分查找),函数的定义和调用,以及字符串操作的深入解析。
摘要由CSDN通过智能技术生成

容器
1.数据结构
线性表:
数组:类型一致,大小固定,连续的内存结构
链表:不一定要内存空间连续,大小不固定
栈:先进后出
队列:先进先出


python的内置容器
list列表:
底层使用的是双向链表 线性表 有序的
1,如何定义
       (1)变量名=【】
b=【1,2,3,4,“gouxin”,true】列表里面可以存储不同的数据类型
       (2)list(【1,2,3,4,】) list(【zhangsan】)
2,获取列表的长度len()
3,获取每一个元素
下标:从零开始,从左往右

【1,2,3,4,“zhangsan”】
0,1,2,3,4
aa【len(aa)-1】
修改数据:列表名【列表下标】=新的数据
“为什么添加数据,删除数据”
删除:pop()通过下标删除1元素(不给参数时清除最后一位)
clear():清除列表数据
index(元素)获取匹配到的第一个元素的索引下标
index(元素,start)从start的下标找
count(元素):计数
copy():拷贝  浅拷贝
reverse():反转
sort(reverse=true)


set集合:
底层基于哈希表实现的,不能重复,无序
set()
{1,2,3,4}
add(元素):追加
pop(元素):任意删除1元素
remve(元素)
discard(元素)区别:要移除的元素不存在时,discard()不会进行报错
intersection():交集  

tuple元组
不可变数据类型。有序的

访问:元组名[元组下标]
len()元组名
如果一个元组只有一条数据,那么需要在这条数据后面加上一个逗号
元组中元素存在可变数据类型,那么更改可变数据类型中的元素不会报错


dict字典
{}
dict()
dict={“uname”:“zhangsan”,“age”:21,1:21"sex“:”nan“}

查找数据:
字典名

dict1["school"]=”huazhu“


len()

key:value
get(key,默认不存在时返回):通过key获取值的
keys():获取所有的键
values():获取所有的值
del 要移除的项  可以删除任何变量
dicte1。fromkeys((1,2,3,4)):创建key值为1,2,3,4的字典,键值为none


删除:
pop():通过key'删除键值对
items():返回键值对
update()

排序
冒泡
arr=[1,5,2,3]
[5,2,3,1]
[5,3,2,1]

for i in range(0,lenn(arr)-1):
     for j in range(o,len(arr)-1):
            if arrr[j]>=arr[j+1]:
arr[j],arr[j+1]= arr[j+1],arr[j]
else:
    pass
print(arr) 


3.28
排序:为数据进行排序,后期配合其他算法,实现数据的快速查找

时间复杂度:O(1) O(logN) O(n) o(n^2)
空间复杂度


冒泡排序:相邻的两两比较

插入排序:假设前i个都是有序的(默认第一个值为有序的,之后)

二分查找:有顺序的


算法的稳定性

函数:
一段实现某一特定功能的代码的集合

本质上实现了代码的高度复用
3.29
函数定义方式:
def函数名([形参]):
一行或多行的函数体
[return返回值]:函数遇见return会立刻返回,不会执行函数内return下边的代码


本地变量(局部变量)和全局变量
本地变量(局部变量):声明在函数内部的变量

全局变量:


全局变量在任何位置都能够被读取,
默认情况下,全局变量不允许被函数内部进行更改


局部变量只能在函数内部进行访问。
外部要进行访问,通过test01返回


函数调用的本质:
程序启动的瞬间,会生成至少一个执行栈,函数是在堆中存放的,每当函数被调用时,会进行压栈,调用结束后,会立刻进行弹栈


值传递和引用传递
值传递传递的是值,引用传递传递的是内存地址

参数:
默认值参数:大多情况下,该参数值不需要改变,书写位置一般在正常参数的后面。方便用户调用数据

注意默认值参数指向不可变数据

可变参数*参数名
*args
如果说要传进去的参数是元组或者列表,只需要在元组或者列表前面添加*,就会把元组和列表作为可变参数穿进去

3.31

递归
字符串:是一种典型的不可变类型
字符串是一个对象

center():居中对齐

count():同级元素的个数

endswith():判断字符串是否以什么结尾。返回的是布尔值

startswith():是否以.......开始

find(查找的字符,【检索开始的下标,检索结束的下标】):从左到右捡索某个字符和字符串,找到第一个满足字符和字符串,并且返回下标

find如果未检索到,最终会回到-1

index()未检索到,直接报错


format():格式化字符串的
rfind():从右到左进行检索

join():按照特定的规则进行字符串的拼接

upper():转大写《==》lower():转小写

strip():清除字符串两边的空格的
lstrip()左《==》rstrip()清除右边的空格
title()标题格式(某个单词的首字母大写)

replace(old,new)返回一个新的字符串
encode():转换编码格式,将字符


切片操作
str1="abcdefg"
print(str1[:3])   
print(str1[3:])
print(str1[:])
print(str1[::2])
abc
defg
abcdefg
aceg
bd
gfedcba

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值