python的几个基本数据类型及其相关操作(字符串str,元组tuple,列表list,字典dict)

一、str及其相关操作

1、字符串的基本方法

字符串的索引、获取字符串长度、利用index获取索引位置,统计某字符在字符串中出现的次数。用法如下方代码。
python的变量在创建时不需要声明其数据类型,他会自动识别变量后的数据类型,所以创建一个数据类型就只需要变量名=“字符串”,

#创建变量
my_str="hello,python"
# 通过索引获取字符
print(my_str[0])
# 知道字符获取索引(位置)
#变量名.index('数据')
print(my_str.index(','))


# 获取字符串长度len()
print(len(my_str))
print(len('hello'))

# 统计变量中某字符出现的次数
# 变量名或大字符串.count(小字符串)
print(my_str.count('python'))
print(my_str.count('n'))

2、字符串的切片

字符串的切片意思见明知意,就是从一个字符串中切取一段字符串,它通过
str[起始位置:结束位置:步长 ],步长就是几个字符切取一个,例如步长为1就是挨着企切取,步长为2就是隔一个切取一个,需要注意的是切片是左闭右开区间,开始位置和结束位置如果是字符串边界则可以省略,步长为1也可以省略。倒叙切片时步长为负数。

str1="hello,python"
# 切片时是一个左闭右开的区间[)
# 切片,[开始位置:结束位置:步长]  步长为隔几个切一个
print(str1[0:5:1])
#开始位置和结束位置如果是字符串边界则可以省略,步长为1也可以省略
print(str1[:5:])
print(str1[:5:2])

print("-"*50)
#倒序切片,步长为负数,最后一个字符的位置用-1来表示。
print(str1[11:5:-1])
print(str1[-1:-6:-1])

3、字符串拆分与拼接

字符串的拆分用split函数来操作,它有两个参数,一个是按什么来拆分,如果不写,默认按照转义字符来拆分,一个是拆分的次数。该函数的返回值是列表list,还有splitlines(),他只有默认拆分。
字符串的拼接有两种常用的,一种是用+号(最常用),类一种是join函数,join函数的用法是 “拼接符”.join(被拼接的字符),join会给每个字符之间都插入拼接字符,例如print(‘&’.join(“0123456”))的输出结果如下图。join还有一个巧妙地用法就是在元组到字符串的数据类型转换时,用空拼接符来巧妙地实现元组到字符串的转换。(tuple无法直接强转为str)

在这里插入图片描述

# spilt字符串拆分,返回的是列表,如果不写以什么分割,默认\n,\t,\r分割
# 还有splitlines拆分只有默认拆分
str="hello,\npython,python"
print(str.split(',',1))
print(str.split(','))
print(str.splitlines())
# 字符串拼接+号,或者join,join用来拼接的字符写在前面string.join(被拼接的字符)。
print(str+"lll")

str2="0123456"
print('&'.join(str2))

4、字符串查找与替换以及将字符串变为大写

字符串的查找有常用的find和index两种方式,都是返回字符的索引,如果是查找字符串,则会返回该字符串第一个字符的索引,find()函数在未找到字符串时会返回-1继续执行下面的代码,但是index会直接报错中断代码执行,所以推荐使用find()函数来查找。
另外startswitch(),endswitch()两个函数用来判断字符串是否以某字符开始或结尾。
字符串的替换用replace()函数,用法为replace(原字符,新字符,替换次数(不写默认全部替换))。

# find和index两种使用方法一样,
# 但是index找不到会报错,后面代码将不会被执行,find不会报错
# 推荐find
str="hello,python,python"
print(str.find("python"))
print(str.find("python",8))
# 未找到返回-1
print(str.find("java"))
print("会执行我吗?")
print(str.index("python"))
print(str.index("python",8))
# print(str.index("java"))
print("会执行我吗?")

# startswitch,endswitch 判断字符串是否以某字符开始或结尾
print(str.startswith("hello"))
print(str.endswith("python"))

# 字符串替换replace(原字符,新字符,替换次数(不写默认全部替换))
# ****原字符串不可被修改
print(str.replace('python','go',1))
# 变为大写
print(str.upper())

二、tuple及其相关操作

1、元组的定义及相关操作

元组的定义是变量名=(数据,数据),元组可以存储多种数据类型,如字符串,列表,字典,整型等等。元组的修改是受到限制的,只有当元组中出现list或dict时元组中的数据才可以被修改,修改时以元组中有列表为例,首先将元组中的列表赋值给一个列表,然后修改列表中的值。
元组还有统计字符出现的次数count(),通过字符获取索引index(),获取元组长度len()等操作。

# tuple只包含一个元素的元组需要加','号
myTuple=(10,)
# ***元组中的数据修改受到限制
my_tuple=(10,20{'name':'Tom'})

print(my_tuple)
#查找元组中的数据
print(my_tuple[1])
print(my_tuple[0])

# 元组中有列表时列表的数据可以修改
tuple2=(1,2,3,[100,200])
print(tuple2[3])
list1=tuple2[3]
list1[1]=10000
print(tuple2[3])
# 索引和通过数据获取索引  index()
print(tuple2.index([100,10000]))
#count()统计次数
print(tuple2.count(1))

# len()获取长度
print(len(tuple2))

三、list及其相关操作

1、列表的定义和插入

列表和元组一样可以存储许多不同的数据类型。他的添加有三种方式,
insert()和append(),extend(),insert()的两个参数分别是插入位置和要插入的数据。append()是从列表尾部插入数据只有一个参数即要插入的数据,最为常用和重要。extend()的用法是将两个列表拼接起来,列表1.extend(列表2),和列表的+=操作有一样的功能。

# 可以存放不同类型的数据
list1=[11,12.33,"woshi"]
print(list1[1])
list2=list()
# 插入insert
list2.insert(0,9)
# 插入一个小列表
list2.insert(1,[100,200])
print(list2)

# append从末尾插入***重点
list2.append(400)
list2.append([400,500])
print(list2)

# extend()将两个列表合并,和列表的+=操作有一样的功能
list1.extend([166,255])
list1+=[166,255]
print(list1)

2、列表的删除

列表的删除有四种方法,del,remove(),尾删pop()和clear()

# del
list1=[1,2,3,4,5,6,7,8,9]

del list1[1]
print(list1)
# 全部删除
# del list1

# remove,删除第一个指定的数
list1.remove(4)#删除4
print(list1)
# pop
# 会返回删除的数据
num=list1.pop()
print(num)
print(list1)
list1.pop(4)
print(list1)

# clear
list1.clear()
print(list1)

3、列表的修改和查询

list可以通过[ ]索引来查询数据,可以通过赋值运算符来修改数据。

list1=[1,2,3,4,5,6,7,8,9]
# 查询(索引查询数据)
print(list1[1])
# 修改
list1[2]=0
print(list1)
# 通过数据查询索引index,不存在会报错
print(list1.index(6))

4、列表的高级操作

列表可以通过len()来统计列表的长度,也可以通过count()来统计列表中某元素出现的次数,列表可以通过sort()方法来排序,默认是升序排列,也可以添加参数reverse=True来实现降序排列,还有reverse()方法是让列表逆序,就是第一个变为最后一个以此类推,
可以通过copy()方法来复制列表并赋值给另一个列表。

# 统计
# len count()
list1=[1,2,3,4,5,6,7,22,-1,2]
print(len(list1))
print(list1.count(2))

# 排序
# sort reverse逆序
# 降序reverse=True
print(list1.sort(reverse=True))
#逆序
print(list1.reverse())

# 复制
# copy
list2=list1.copy()
print(list2)

四、dict及其相关操作

1、字典的定义

字典里面存放的都是键值对,就是一个键对应一个值,键和值都不能单独存在。字典用{}来定义,可以通过键来索引字典。

# 字典是一个无序的容器,通过键来获取值
dict1={'姓名':'阿明','年龄':'18','性别':'女'}
print(type(dict1))
# 键不存在报错
print(dict1['姓名'])

2、字典的增删改查

字典可以通过索引[‘键’]和get()方法来查询数据,
字典的增加和修改基本上是一起实现的,有三种方法,第一种方法可以通过索引和=来修改字典数据,如果字典中有该键就修改键的值,如果没有就会自动添加键。第二种setdefault(),特点是字典中有该键不修改值,没有就添加该键。方法三是通过update()方法,来更新字典,字典1.update(字典二),将两个字典合并,如果就相同的键,就用字典二更新字典一,没有就添加新的键。
字典的删除,可以用del [键]和pop()方法来删除,del方法键存在删除,不存在就报错。字典还提供了clear()方法,可以清空字典的所有数据。

# 查
my_dict={'name':'aming','age':18}
# 两种方式
print(my_dict['age'])
# 推荐使用这种,下面代码还可以执行,键不存在会返回none
print(my_dict.get('name'))
# 还可以添加键值对
print(my_dict.get('high',186))

# 增加和修改
# 三种方法1,有键就修改,没有就添加
dict1['www']=10
# 方法二
# 有键不修改值,没有就添加值
dict1.setdefault('addr','长阳区')
#方法三
dict1={'name':'tom','age':18,'sex':'male'}
dict2={'name':'peter','weight':55}
dict1.update(dict2)
print(dict1)

#字典的删除
dict1={'name':'tom','age':17}
# del删除和pop删除
# 键存在删除,不存在就报错
del dict1['age']
print(dict1)

dict1.pop('name')
print(dict1)

# clear清空字典
dict1.clear()

3、字典的注意事项

字典中的键是唯一的,如果有重复,后面的值会替换前面的

# 字典中的键是唯一的,后面的值会替换前面的
# 字典的键key不能是列表和字典本身,可以是元组
# 字典的值可以是字典和列表
# 字典是无序的
dict1={'name':[1,2,3]}
print(dict1)
print(type(dict1))
dict2={'number':{1:2,3:4}}
print(dict2)
print(type(dict2))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

(undone) 阅读 MapReduce 论文笔记

参考:https://pdos.csail.mit.edu/6.824/papers/mapreduce.pdf 摘要:简单介绍了 MapReduce 是在大型分布式系统上工作的 Introduction 的内容总结: 1.介绍背景:为什么我们需要分布式系统?MapReduce 的意义是哪些 2.简…

运动耳机哪个牌子的好?5大质量不凡的运动耳机测评力荐!

在快节奏的生活中,无论是晨跑、健身还是户外探险,音乐都成了许多人不可或缺的陪伴。运动耳机,作为一种专为运动场景设计的音频设备,旨在提供高质量音频体验的同时,保证佩戴的舒适度和运动的安全性。 (上图为…

YOLOv11改进 | 主干篇 | YOLOv11引入MobileNetV4

1. MobileNetV4介绍 1.1 摘要: 我们推出了最新一代的 MobileNet,称为 MobileNetV4 (MNv4),具有适用于移动设备的通用高效架构设计。 在其核心,我们引入了通用倒瓶颈(UIB)搜索块,这是一种统一且…

小川科技携手阿里云数据库MongoDB:数据赋能企业构建年轻娱乐生态

随着信息技术的飞速发展,企业在处理海量数据时所面临的挑战日益严峻。特别是在年轻娱乐领域,用户行为的多样性和数据量的激增对数据存储与分析技术提出了更高的要求。在此背景下,小川凭借其前瞻性的技术视野,选择了MongoDB作为其数…

AlmaLinux 9 安装mysql8.0.38

文件下载 https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.39-linux-glibc2.12-x86_64.tar 选择合适系统版本 下载后解压 tar -xvf mysql-8.0.39-linux-glibc2.12-x86_64.tar解压后里面有三个文件夹 使用mysql-8.0.39-linux-glibc2.12-x86_64.tar.xz即可&#xff0c…

Redis中String类型的常用命令(append,getrenge,setrange等命令)

Redis----String命令 前言.常见的String存储类型. 常见命令1. set 命令2. get 命令3. mget命令与mset命令4. setnx命令5. setex与psetex命令6. incr与incrby与incrbyfloat命令7. decr与decrby命令8. append命令9. getrange和setrange命令10. strlen命令. 前言. 常见的String存…

【Kubernetes】常见面试题汇总(四十五)

目录 102.使用 Kubernetes 时可以采取的最佳安全措施是什么? 103.什么是联合集群? 特别说明: 题目 1-68 属于【Kubernetes】的常规概念题,即 “ 汇总(一)~(二十二)” 。 题目…

高中教辅汇总【35GB】

文章目录 一、资源概览二、资源亮点三、获取方式 一、资源概览 这份教辅资源汇总,精心搜集了高中各学科的海量教辅资料,总容量高达35GB,覆盖了语文、数学、英语、物理、化学、生物、历史、地理、政治等所有必修及选修科目。从基础知识点到难…

插槽slot在vue中的使用

介绍 在 Vue.js 中,插槽(slot)是一种用于实现组件内容分发的功能。通过插槽,可以让父组件在使用子组件时自定义子组件内部的内容。插槽提供了一种灵活的方式来组合和复用组件。 项目中有很多地方需要调用一个组件,比…

【H2O2|全栈】关于CSS(9)CSS3扩充了哪些新鲜的东西?(二)

目录 CSS3入门 前言 准备工作 伪元素补充 :before :after 文本溢出属性 转换效果 预告和回顾 后话 CSS3入门 前言 本系列博客主要介绍CSS相关的知识点。 这一期主要介绍以下几个CSS3的知识点: 伪元素补充文本溢出属性转换 没有基础的朋友&#xff…

【Docker】配置文件

问题 学习Docker期间会涉及到docker的很多配置文件,可能会涉及到的会有: /usr/lib/systemd/system/docker.service 【docker用于被systemd管理的配置文件】 /etc/systemd/system/docker.service.d【覆盖配置文件的存放处】 /etc/systemd/system/mul…

网页前端开发之Javascript入门篇(4/9):循环控制

Javascript循环控制 什么是循环控制? 答:其概念跟 Python教程 介绍的一样,只是语法上有所变化。 参考流程图如下: 其对应语法: var i 0; // 设置起始值 var minutes 15; // 设置结束值(15分钟…

VMware Aria Operations for Networks 6.13 发布,新增功能概览

VMware Aria Operations for Networks 6.13 - 网络和应用监控工具 请访问原文链接:https://sysin.org/blog/vmware-aria-operations-for-networks/,查看最新版。原创作品,转载请保留出处。 作者主页:sysin.org VMware Aria Oper…

Golang | Leetcode Golang题解之第440题字典序的第K小数字

题目&#xff1a; 题解&#xff1a; func getSteps(cur, n int) (steps int) {first, last : cur, curfor first < n {steps min(last, n) - first 1first * 10last last*10 9}return }func findKthNumber(n, k int) int {cur : 1k--for k > 0 {steps : getSteps(cu…

Llama 系列简介与 Llama3 预训练模型推理

1. Llama 系列简介 1.1 Llama1 由 Meta AI 发布&#xff0c;包含 7B、13B、33B 和 65B 四种参数规模的开源基座语言模型 数据集&#xff1a;模型训练数据集使用的都是开源的数据集&#xff0c;总共 1.4T token 模型结构&#xff1a;原始的 Transformer 由编码器&#xff08…

C++入门基础 (超详解)

文章目录 前言1. C关键字2. C的第一个程序3. 命名空间3.1 namespace的定义3.2 命名空间的嵌套3.3 命名空间使用3.4 查找优先级总结 4. C输入和输出4.1 标准输入输出 (iostream库)4.2 文件输入输出 (fstream库)4.3 字符串流 (sstream库)4.4 C格式化输出4.5 std::endl和\n的区别 …

56 门控循环单元(GRU)_by《李沐:动手学深度学习v2》pytorch版

系列文章目录 文章目录 系列文章目录门控循环单元&#xff08;GRU&#xff09;门控隐状态重置门和更新门候选隐状态隐状态 从零开始实现初始化模型参数定义模型训练与预测 简洁实现小结练习 门控循环单元&#xff08;GRU&#xff09; 之前我们讨论了如何在循环神经网络中计算梯…

生信初学者教程(二十三):REF+SVM筛选候选标记物

文章目录 介绍加载R包导入数据准备数据机器学习特征筛选数据分割基础模型Recursive Feature Elimination特征筛选调参最终分类模型测试集验证标记基因输出结果总结介绍 采用了REF(Recursive Feature Elimination) 结合 SVM(Support Vector Machine) 的方法,对差异基因(参…

探索未来:hbmqtt,Python中的AI驱动MQTT

文章目录 **探索未来&#xff1a;hbmqtt&#xff0c;Python中的AI驱动MQTT**1. 背景介绍2. hbmqtt是什么&#xff1f;3. 安装hbmqtt4. 简单的库函数使用方法4.1 连接到MQTT服务器4.2 发布消息4.3 订阅主题4.4 接收消息4.5 断开连接 5. 应用场景示例5.1 智能家居控制5.2 环境监测…

react-问卷星项目(4)

项目实战 使用CSS 尽量不要使用内联CSS 内联style代码多&#xff0c;性能差&#xff0c;扩展性差外链css文件可复用代码&#xff0c;可单独缓存文件 元素内联style 和HTMl元素的style相似必须用JS写法&#xff0c;不能是字符串&#xff0c;里面必须是对象 <span style…