当前位置: 首页 > article >正文

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.kler.cn/a/330053.html

相关文章:

  • Java中日志采集框架-JUL、Slf4j、Log4j、Logstash
  • 【Linux】apt 关闭 ssl 认证
  • 足球虚拟越位线技术FIFA OT(二)
  • 如何在项目中用elementui实现分页器功能
  • ggplot2-scale_x_continuous()
  • 机器学习(贝叶斯算法,决策树)
  • ros2 自定义工作空间添加source
  • k8s架构,从clusterIP到光电半导体,再从clusterIP到企业管理
  • 微信小程序实战教程:如何使用map组件实现地图功能
  • TCP/UDP初识
  • 物联网智能项目探究和方案设计
  • 叶国富“推翻”马云新零售,零售新王此刻登基?
  • 栈与队列相关知识(二)
  • LLM基础概念:模型训练
  • 基于SpringBoot的校园健康信息管理系统
  • 相机基础概念
  • 【分布式训练 debug】VS Code Debug 技巧:launch.json实用参数
  • Grafana链接iframe嵌入Web前端一直跳登录页面的问题记录
  • RabbitMQ 延迟消息
  • 51单片机系列-按键检测原理
  • 【CSS3】css开篇基础(1)
  • 算法笔记(五)——分治
  • 【C++】多态(下)
  • C#基础(4)封装——成员方法
  • CSS文本格式化
  • 分层图 的尝试学习 1.0