Python基础语法(六):数据容器

数据容器

——一种可以存储多个元素的Python数据类型

为什么学习数据容器?

Python中的数据容器

  一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素每一个元素,可以是任意类型的数据,如字符串、数字、布尔等

数据容器根据特点的不同,如:

  • 是否支持重复元素
  • 是否可以修改
  • 是否有序,等

分为5类,分别是:

列表(list)、元组 (tuple) 、字符串 (str)、集合 (set) 、字典 (dict)

1、list(列表)[]—可以修改

(1)定义

# 字面量

[元素1,元素2,元素3,元素4,...]

# 定义变量

变量名称  [元素1,元素2,元素3,元素4,...]

# 定义空列表

变量名称 = []

变量名称 = list()

列表内的每一个数据,称之为元素

  • 以[ ] 作为标识
  • 列表内每一个元素之间用,逗号隔开

列表有如下特点:

  • 可以容纳多个元素(上限为2**63-1、9223372036854775807个)
  • 可以容纳不同类型的元素(混装)数据是有序存储的(有下标序号)
  • 允许重复数据存在
  • 可以修改(增加或删除元素等)

# 字面量

# [元素1,元素2,元素3,元素4,...]

my_list=["hao","hao","xuexi",666]

print(my_list)

print(type(my_list))

# 嵌套列表

my_list=[[1,2,3],[4,5,6]]

print(my_list)

print(type(my_list))

——————————————————

['hao', 'hao', 'xuexi', 666]

<class 'list'>

[[1, 2, 3], [4, 5, 6]]

<class 'list'>

(2)列表功能(方法)

  • 查找某元素的下标

功能:查找指定元素在列表的下标,如果找不到,报错ValueError

语法:

列表.index(元素)

index就是列表对象 (变量)内置的方法(函数)

my_list=["hao","hao","xuexi",666]

index1=my_list.index("xuexi")

print(index1)

————————————————

2

  • 修改特定位置(索引)的元素值

语法: 

列表[下标]= 值

可以使用如上语法,直接对指定下标(正向、反向下标均可)的值进行:重新赋值(修改)

# 正向下标

my_list = [1,2,3]

my_list[0]=5

print(my_list)  #结果, [5,2,3]

# 反向下标

my_list = [1,2,3]

my_list[-3]=5

print(my_list)  #结果: [5,2,3]

  • 插入元素:

语法: 

列表.insert(下标,元素)

在指定的下标位置,插入指定的元素

my_list = [1,2,3]

my_1ist.insert(1,"itheima")

print(my_list)

-————————————————

结果: [1,"itheima",3,4]

  • 追加元素

语法:

列表.appena(元素)

将指定元素,追加到列表的尾部

  • 追加元素方式2:

语法:

列表.extend(其它数据容器)

将其它数据容器的内容取出,依次追加到列表尾部

  • 删除元素:

语法1: 

del 列表[下标]

仅仅删除

语法2: 

列表.pop(下标)

取出列表中的元素

  • 删除某元素在列表中的第一个匹配项

语法: 

列表.remove(元素)

  • 清空列表内容

语法:

列表.clear()

  • 统计某元素在列表内的数量

(3)list(列表)的遍历

while遍历

for遍历

for循环和while对比

  • for循环更简单,while更灵活
  • for用于从容器内依次取出元素并处理,while用以任何需要循环的

2、tuple(元组) ()— 不可修改

元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型

列表有如下特点:

  • 可以容纳多个数据
  • 可以容纳不同类型的数据 (混装 )
  • 数据是有序存储的 (下标索引 )
  • 允许重复数据存在
  • 不可以修改 (增加或删除元素等)
  • 支持for循环

多数特性和list一致,不同点在于不可修改的特性

t1 = (1, "hao hao", True)

#定义一个数据,这个数据后面要添加逗号

t2 = ("Hello",)

t3 = tuple()

print(f"t1的类型是:{type(t1)},t1的内容是:{t1}")

print(f"t2的类型是:{type(t2)},t1的内容是:{t2}")

print(f"t3的类型是:{type(t3)},t1的内容是:{t3}")

————————————

t1的类型是:<class 'tuple'>,t1的内容是:(1, 'hao hao', True)

t2的类型是:<class 'tuple'>,t1的内容是:('Hello',)

t3的类型是:<class 'tuple'>,t1的内容是:()

注:定义一个数据,这个数据后面要添加逗号

元组的相关操作

元组内容不可修改,但是元组内嵌套一个list就可以修改,修改list的内容

3、str(字符串)— 不可修改

常用操作

  • 查找特定字符串的下标索引值

语法: 

字符串.index(字符串)

my_str = "itcast and itheima"

print(my_str.index("and")) 

# 结果7

  • 字符串的替换

语法:

 字符串,replace(字符串1,字符串2)

功能: 将字符串内的全部: 字符串1,替换为字符串2

注意: 不是修改字符串本身,而是得到了一个新字符串哦

my_str = "itcast and itheima"

new_my_str = my_str.replace("it","程序")

print(f"将字符串{my_str},进行替换后得到: {new_my_str}")

——————————————————

将字符串itcast and itheima,进行替换后得到: 程序cast and 程序heima

  • 字符串的分割(split)

语法: 

字符串.split(分隔符字符串)

功能: 按照指定的分隔符字符串,将字符串划分为多个字符串,并存入列表对象中

注意:字符串本身不变,而是得到了一个列表对象

# spLit方法

my_str = "hello python itheima itcast"

my_str_list = my_str.split(" ")

print(f"将字符串{my_str}进行split切分后得到: {my_str_list},类型是: {type(my_str_list)}")

——————

将字符串hello python itheima itcast进行split切分后得到: ['hello', 'python', 'itheima', 'itcast'],类型是: <class 'list'>

  • 规整操作(strip)

语法: 

字符串.strip(字符串)

4、数据容器的切片

序列支持切片,即: 列表、元组、字符串,均支持进行切片操作切片: 从一个序列中,取出一个子序列

语法: 

序列[起始下标:结束下标:步长]

表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个斯序列:

  • 起始下标表示从何处开始,可以留空,留空视作从头开始
  • 结束下标(不含)表示何处结束,可以留空,雷空视作截取到结尾
  • 步长表示,依次取元素的间隔

步长1表示,一个个取元素

步长2表示,每次跳过1个元素取

步长N表示,每次跳过N-1个元素取

步长为负数表示,反向取 (注意,起始下标和结束下标也要反向标记)

5、set(集合)—不支持重复,内容可无序

——下标索引不能访问

经过上述对集合的学习,可以总结出集合有如下特点

  • 可以容纳多个数据
  • 可以容纳不同类型的数据 (混装 )数据是无序存储的 (不支持下标索引)
  • 不允许重复数据存在
  • 可以修改 (增加或删除元素等 )
  • 支持for循环,不支持while循环

  • 修改

  • 移除
  • 从集合中随机取出元素

  • 清空

  • 取差集

  • 消除差集

  • 集合合并

6、dict(字典、映射){}

key不可重复,不可以使用索引

经过上述对字典的学习,可以总结出字典有如下特点:

  • 可以容纳多个数据
  • 可以容纳不同类型的数据
  • 每一份数据是KeyValue键值对可以通过Key获取到Value,Key不可重复 (重复会覆盖)
  • key不可重复
  • 不支持下标索引
  • 可以修改(增加或删除更新元素等)支持for循环,不支持while循环

字典的常用操作

总结

1.基于各类数据容器的特点,它们的应用场景如下

  • ·列表:一批数据,可修改、可重复的存储场景
  •  元组:一批数据,不可修改、可重复的存储场景
  • 字符串:一串字符串的存储场景
  • 集合:一批数据,去重存储场景
  • 字典:一批数据,可用Key检索Value的存储场景

7、数据容器的通用操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值