Python 从入门到精通 学习笔记 Day04

Python 从入门到精通 第四天

在这里插入图片描述

今日目标

数据类型-又见str、数据类型-又见list
列表切片&排序&反转&循环、字典

数据类型 - 又见str

字符串定义

字符串是一个有序的字符的集合,用于在计算机里存储和表示文本信息
创建

a = "Hello ,my name is Haoxintai."

字符串特性
按照从左到右的顺序定义字符集合,下标从0开始顺序访问。

# 可以进行切片操作,即顾头不顾尾
a[3:6]# 从第三位到第五位lo,
a[1:5]# 从第一位到第四位ello

不可变。
字符串是不可变的,不能像列表一样修改其中某个元素。
所有对字符串的操作修改其实都是相当于生成了一份新数据。

字符串常用操作

center(self,width,fillchar=None) # 在字符串两边补充填充物
count (self,sub,start=None,end=None)# 查询某个字符在字符串中出现的次数 start end 为取值范围
encode(self,encoding='utf-8',errors='strict')
endswith(self,suffix,start=None,end=None)# 判断字符是不是以某个字符结尾 返回True或False
find(self,sub,start=None,end=None)# 查找,返回-1代表没找到,如果找到就返回其索引
isdigit(self)# 判断是不是一个数字
strip(self,chars=None)# 去除多余的空格
replace(self,old,new,count=None)# 替换,count为替换的次数
split(self,seq=None,maxsplit=-1)# 把一个字符串变成列表,默认以空格划分
startswith(self,prefix,start=None,end=None)# 判断字符是不是以某个字符开始

数据类型 - 又见list

定义

[]内以逗号分隔,按照索引,存放各种数据类型,每个位置代表一个元素

列表的特点

①可以存放多个值
②按照从左到右的顺序定义列表元素,下标从0开始顺序访问,有序
③可修改指定索引位置对应的值,可变

列表的增加操作

# 追加,数据会追加到尾部
names['haoxintai','qingfeng']
names.append("damahou")
names.append("laoliu")
names['haoxintai','qingfeng','damahou','laoliu']# 插入,可插入任何位置
names.insert(2,"黑姑娘")
names['haoxintai','qingfeng','黑姑娘','damahou','laoliu']# 合并,可以把另一外列表的值合并进来
n2 = ["狗蛋","绿毛","鸡头"]
names=['haoxintai','qingfeng','黑姑娘','damahou','laoliu']
names.extend(n2)
names['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']# 列表嵌套
name.insert(2,[1,2,3])
names['haoxintai','qingfeng',[1,2,3],'黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
names[2][1] 2

删除操作

del 直接删
names
['haoxintai','qingfeng',[1,2,3],'黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
del names[2]
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
pop删除
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头']
names.pop() #默认删除最后一个元素并返回被删除的值'鸡头'
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛']
names.pop(1) # 删除指定元素
'qingfeng'
remove删除
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头','laoliu']
names.remove("laoliu")# 删除第一个找到的laoliu值
names
['haoxintai','qingfeng','黑姑娘','damahou','狗蛋','绿毛','鸡头','laoliu']
clear清空
n2
["狗蛋","绿毛","鸡头"]
n2.clear()
n2
[]

修改操作

names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛']
names[0] = "我叫好心态"
names[-1]="你叫好心态"
names
['我叫好心态','qingfeng','黑姑娘','damahou','laoliu','狗蛋','你叫好心态']

查操作

names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头','laoliu']
names.index("laoliu")# 返回从左开始匹配到的第一个laoliu的索引
3names.count("laoliu")# 返回laoliu的个数
2item in list
'qingfeng' in names
#在不知道一个元素在列表哪个位置的情况下,如何修改:
#先判断在不在列表里,item in list
#取索引,item_index = names.index("qingfeng")
#去修改,names[item_index] = "wanfeng"

列表切片&排序&反转&循环

切片

正常切片

切片就像切面包,可以同时取出元素的多个值

names[start : end]
names
['haoxintai','qingfeng','黑姑娘','damahou','laoliu','狗蛋','绿毛','鸡头','laoliu']
names[1:4]# 不包含下标4的元素
['qingfeng','黑姑娘','damahou']

注意:切片的特性是顾头不顾尾,即start的元素会被包含,end-1是实际取出来的值

倒着切
names[-5:-1]
['laoliu','狗蛋','绿毛','鸡头']
names[-5:]
['laoliu','狗蛋','绿毛','鸡头','laoliu']
步长(跳着切)
names[start:end:step] #step 默认是1
a
[0,1,2,3,4,5,6,7,8,9]
a[0:7:2]
[0,2,4,6]

排序&反转&循环

排序
a = [83,4,2,4,6,19,33,21]
a.sort()
a
[2,4,4,6,19,21,33,83]
反转
names
['#','4','@','laoliu','damahou','qingfeng','haoxintai']
names.reverse()
names
['haoxintai','qingfeng','damahou','laoliu','@','4','#']
循环
for i in names:print(i)
haoxintai
qingfeng
damahou
laoliu
@
4
#
for i in enumerate(names):print(i)
(0,'haoxintai')# 元组
(1,'qingfeng')
(2,'damahou')
(3,'laoliu')
(4,'@')
(5,'4')
(6,'#')

字典

{key1:value1,key2:value2}

infor = {"name":"haoxintai","age":27
}key -> value

特性

1.key-value结构
2.key必须为不可变数据类型(字符串、数字)、必须唯一
3.可存放任意多个value、可修改、可以不唯一
4.无序
5.查询速度快,且不受dict的大小影响。
取值:print(infor[“name”])

增加操作

mes ={"haoxintai":[ 23,"CEO",66000 ],"黑姑娘":[ 24,"行政",4000],
}
#新增k
names["佩奇"]=[ 26,"讲师",40000 ]

删除操作

names.pop("haoxintai")#删除指定key
del names ["haoxintai"]#删除指定key,同pop方法
names.clear ( )
#清空dict

修改操作

dic['key'] = 'new_value'# 如果key在字典中存在, 'new_value'将会替代原来的value值;

查操作

dic['key']#返回字典中key对应的值,若key不存在字典中,则报错;
dic.get(key,default = None)#返回字典中key对应的值,若key不存在字典中,则返回default的值(default默认为None)
'key' in dic#若存在则返回True,没有则返回False
dic.keys()#返回一个包含字典所有KEY的列表;
dic.values()#返回一个包含字典所有value的列表;
dic.items()#返回一个包含所有(键,值)元组的列表;

循环

for k in dic.keys ()
for k,v in dic.items (for k in dic#推荐用这种,效率速度最快
info = {"name" :"好心态","mission":"123","website":"https://haoxintai.com"
}
for k in info:
print (k,info[k])

求长度

len(dic)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/219411.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android---Kotlin 学习005

substring 字符串截取。相加与 java,kt 里面的 substring 函数支持 IntRange 类型(表示一个整数范围的类型)的参数,until 创建的范围不包括上限值。 const val NAME "Jimmys friend" fun main(){val index NAME.ind…

TrustGeo代码理解(二)test.py

代码链接:https://github.com/ICDM-UESTC/TrustGeo 一、加载检查点(checkpoint)并进行测试 # -*- coding: utf-8 -*-"""load checkpoint and then test """ 该脚本的目的是加载之前训练过的模型的检查点&am…

【Linux】基于sed正则指令修改application.properties属性值

文章目录 背景sed介绍演示结果 背景 服务器上搭建了SpringCloud微服务,每个服务中都有application.properties文件,在部署过程中需要修改每个微服务的redis.ip和redis.port。如果手动去修改会很麻烦,所以下面写了一个shell脚本(基…

idea的快捷键

1.调整字体的大小 文件夹的循序:setting-Editor-Font 界面: 2.删除当前行 文件夹的循序:setting-Keymap-DeleteLine 界面: 3.导入该行需要的类 文件夹的循序:setting-Editor-General-Auto import 界面: 4.格式化代码 文件夹的循序:setting-keymap-Reformat 界面: 5.快速…

大模型微调方法:冻结方法 Freeze、P-Tuning 系列、LoRA、QLoRA

大模型微调方法 冻结方法 FreezeP-Tuning 系列Prefix-TuningPrompt TuningP-Tuning v1P-Tuning v2 LoRAQLoRA 冻结方法 Freeze 方法意思是,只用少部分参数训练,把模型的大部分参数冻结。 只要设置微调层的参数: # 遍历模型的所有参数和名称…

程序员的养生之道:延寿健康的十大秘诀(下)

程序员的养生之道:延寿健康的十大秘诀(上)-CSDN博客 目录 6. 心理调节,减轻压力 6.1 程序员常见的心理问题 6.2 压力管理的重要性 6.3 放松技巧与应对策略 6.4 积极心态与心理健康 7. 正确坐姿,保护颈椎腰椎 …

VLAN协议与单臂路由

文章目录 VLAN协议与单臂路由一、VLAN的概念及优势1、分割广播域2、VLAN的优势3、VLAN数据帧 二、VLAN的种类1、静态VLAN2、动态VLAN3、VLAN划分方式 三、静态VLAN的配置1、VLAN的范围2、静态VLAN的配置2.1 配置静态VLAN的步骤2.2 vlan三种端口类型举例:配置静态VLA…

VR全景直播来临,沉浸式代入吸引百万人目光

如今,VR技术正在不断改变着直播行业的面貌,为观众提供沉浸式的观看体验。在5G技术的快速发展背景下,VR全景直播作为5G应用的场景,被广泛应用在体育赛事、新闻会议、演唱会、教育医疗等场景,通过VR技术进行全景直播&…

c语言结构体调用格式与对齐

1.声明形式: struct 结构体名字 { 结构体成员 }结构体变量名; 2.赋值方法 3.结构体对齐: 1.起始偏移量:默认结构体第一个元素对齐0起始偏移量,第一个元素占一个字节,此时偏移量为1. 2.标准数&#xff…

基于stm32 FP-AUD-SMARTMIC1 音频系统开发

基于stm32 FP-AUD-SMARTMIC1 音频系统开发 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,+群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, FP-AUD-SMARTMIC1 是一个用于 STM32F4Discovery …

《使用ThinkPHP6开发项目》 - 创建控制器

《使用ThinkPHP6开发项目》 - 安装ThinkPHP框架-CSDN博客 《使用ThinkPHP6开发项目》 - 设置项目环境变量-CSDN博客 《使用ThinkPHP6开发项目》 - 项目使用多应用开发-CSDN博客 《使用ThinkPHP6开发项目》 - 创建应用-CSDN博客 使用ThinkPHP6创建控制器,开始项…

css 纯样式实现绘出进度条

效果: css代码: .bar{height: 14px;width: 100%;font-size: 10px;margin-top: 5px;background-color: #f5f5f5;}.bar::before{display: block;counter-reset: progress var(--precent); content: ;width: calc(1% * var(--precent));color: #fff;height:…

【C++进阶篇】二叉搜索数

目录 前言: 以后我们要学map,set,AVL,红黑数所以必须要有二叉搜索数做铺垫 1、二叉搜索树概念 2.二叉搜索树操作 1.二叉搜索树的查找 a、从根开始比较,查找,比根大则往右边走查找,比根小则…

SpringBoot 实现动态切换数据源

最近在做业务需求时,需要从不同的数据库中获取数据然后写入到当前数据库中,因此涉及到切换数据源问题。本来想着使用Mybatis-plus中提供的动态数据源SpringBoot的starter:dynamic-datasource-spring-boot-starter来实现。 结果引入后发现由于…

IO零拷贝

在介绍零拷贝之前我们先看看传统的 Java 网络 IO 编程是怎样的。 下面代码展示了一个典型的 Java 网络程序。 File file new File("index.jsp");RandomAccessFile rdf new RandomAccessFile(file, "rw");byte[] arr new byte[(int) file.length()];rdf…

Tcl语言语法精炼总结

一、置换符号 1.变量置换 $ TCl解释器会将认为$后面为变量名,将变量名置换成它的值 2.命令置换 [] []内是一个独立的TCL语句 3.反斜杠置换 \ 换行符、空格、[、$等被TCL解释器当作特殊符号处理。加上反斜杠后变成普通字符 \t TAB \n 换行符 4.双引号 “” “…

鸿蒙开发之页面与组件生命周期

一、页面间的跳转 创建文件的时候记得选择创建page文件,这样就可以在main->resources->profile->main_pages.json中自动形成页面对应的路由了。如果创建的时候你选择了ArkTS文件,那么需要手动修改main_pages.json文件中,添加相应的…

关于大模型ChatGLM3-6B在CPU下运行

最近在调研市场上语言大模型,为公司的产品上虚拟人的推出做准备。各厂提供语言模型都很丰富,使用上也很方便,有API接口可以调用。但唯一的不足,对于提供给百万用户使用的产品,相比价格都比较贵。所以对ChatGLM3-6B的使…

基于pandoraNext使用chatgpt4

1.登陆GitHub 获取pandoraNext项目GitHub - pandora-next/deploy: Pandora Cloud Pandora Server Shared Chat BackendAPI Proxy Chat2API Signup Free PandoraNext. New GPTs(Gizmo) UI, All in one! 在release中选择相应版本操作系统的安装包进行下载 2.获取license_…

最新鸿蒙HarmonyOS4.0开发登陆的界面1

下载deveco-studio 说明一下,本人只是学习中,现在只是拿着vue及uniapp的经验在一点一点的折腾,不过现在看来,鸿蒙入门并不是很难。也许是自己没有深入下去。 https://developer.harmonyos.com/cn/develop/deveco-studio#download…