Python语言第三章之容器类型(list, tuple)

本文详细介绍了Python中的高级数据类型,包括数字型和非数字型(如列表、元组、集合和字典),强调了它们作为序列的特性以及容器操作。特别关注了列表的定义、元素访问、常用方法(如添加、删除、排序和嵌套)以及元组的定义、特点和应用,以及如何通过元组实现数据交换和保护列表免于被修改。
部署运行你感兴趣的模型镜像

高级数据类型

Python中的数据类型可以分为:数字型(基本数据类型)和非数字型(高级数据类型)

  • 数字型包含:整型int、浮点型float、布尔型bool、复数型complex
  • 非数字型包含:字符串str、列表list、元组tuple、集合set、字典dict

高级数据类型的特点

  • 都是一个序列 sequence,也可以理解为 容器
  • 获取某一个元素 数据集[index] (集合除外,无序的)
  • 通过for循环遍历
  • 都可以计算长度、最大/最小值、比较、删除
  • 连接 + 和 重复 *
  • 切片,获取容器一部分

容器类型

1. 列表 list

列表 是 Python 中使用 最频繁 的数据类型,专门用于存储 一串 数据,存储的数据 称为 元素
列表的类型是:list

1.1 列表的定义

列表用[]定义,元素之间用逗号,分隔

namesList = ['林青霞','张曼玉','胡慧中']

1.2 访问列表的元素

查找列表中元素是按照列表索引进行查找的。索引 就是元素在 列表 中的位置编号,又可以被称为 下标
索引是从0开始的,例如:第一个元素,索引就为0

1.2 常用方法  

可以通过for遍历列表中的元素

namesList = ['林青霞','张曼玉','胡慧中']
# 遍历列表
for name in namesList:
    print(name)

列表可以增加新的元素,删除元素,修改元素。还可以对列表进行排序等操作

nameList = ["张三", "李四", "王五"]
name = nameList[0]
# print(name)

# for n in nameList:
#     print(n)

"""
 添加 append
"""
# nameList.append("王二麻子")
# for n in nameList:
#     print(n)

"""
 删除索引 pop
 负数从后往前删除, -1 最后一个, -2 倒数第二个
"""
# nameList.pop(2)
# nameList.pop(-1)
# print(nameList)

"""
 删除某一项 remove
"""
# nameList.remove("李四")
# print(nameList)

"""
 修改 直接通过[下标] 修改
"""
# nameList[0] = "6666"
# print(nameList)

"""
查询元素 [下表查询] 或者
列表.index(元素) 查找下标用的
"""
name2 = nameList.index("张三")
print(name2)  # 0
"""
升序排序 sort
"""
ageList = [10, 30, 20, 15, 12, 5, 9]
# 从小到大排序
# ageList.sort()
# print(ageList)
"""
降序排序 sort(reverse = True)
"""
# ageList.sort(reverse=True)
# print(ageList)

"""
反转 reverse
"""
ageList.reverse()
print(ageList)

1.3 列表嵌套

列表中的元素可以是列表类型的数据,就称为列表的嵌套

stuList = [
    [1, 2, 3],
    ["张三", "李四", "王五"]
]

# 查询
# print(stuList[0][1])  # 2
# print(stuList[1][2])  # 王五

# 修改
# stuList[0][0] = 6
# print(stuList)

stuList.append(["aa", "bb"])
print(stuList)

1.4 列表案例: 办公室分配

需求

一个学校,有3个办公室,现在有8位老师等待工位的分配

['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']

请编写程序:

  1. 完成随机的分配
  2. 打印办公室信息 (每个办公室中的人数,及分别是谁)

分析

1. 定义3个办公室的列表:列表嵌套
2. 声明8位老师到列表中
3. 遍历老师的列表
4. 随机存放到办公室中

提示:获取随机数

import random

# 八个老师 列表中保存
teacherList = ['袁腾飞', '罗永浩', '俞敏洪', '李永乐', '王芳芳', '马云', '李彦宏', '马化腾']

# 三个办公室 列表嵌套
classList = [[], [], []]

for tea in teacherList:
    # 随机办公室坐标
    index = random.randint(0, 2)
    # 随机放入办公室中
    classList[index].append(tea)
print(classList)

2. 元组 tuple

Python的元组与列表类似,也是容器的一种,不同之处在于元组的元素不能修改

  • 用于存储 一串 数据,元素之间使用 , 分隔
  • 元组的索引从 0 开始
  • 元组的类型:tuple

元组的定义

元组用 () 定义

names_tuple = ('林青霞','张曼玉','胡慧中')

注意:一个元素的元组定义需要在元素后加上,

# 错误定义方式 ❌
names_tuple = ('林青霞')
# 正确定义方式 ✅
names_tuple = ('林青霞',)

元组的特点和作用

元组作为一种高级数据类型,具备如下的特点

组包和拆包

自动组包

t的类型是元组类型,这就是元组的自动组包特征

t = '林青霞','张曼玉','王祖贤'
自动解包
# 定义元组

t = ('林青霞','张曼玉','王祖贤')

# 变量赋值

name1,name2,name3 = t

元组t会自动解包分别赋值给name1、name2、name3三个变量
注意:左边变量的个数一定要和元组的元素个数保持一致

3. 交换数据

交换数据在其它语言中的实现如下:

a = 10
b = 20
# 交换a和b
tmp = a
a = b
b = tmp

可以利用元组的组包和解包特点,,速交换两个数据

a = 10
b = 20
# 交换a和b
a,b = b,a

上述交换,首先右边会进行自动组包,组成新的元组(20,10)

左边会把元组解包,元素分别赋值给ab,最终实现交换的功能

4. 让列表不可修改

有时我们传递列表数据给别人使用,希望别人不要修改列表

可以把列表转换成元组,这样就变成了不可变的数据

lst = [10, 20, 30]
# 将列表转换成元组
tp = tuple(lst)

# 不可执行如下类似操作
tp[0] = 111
tp.append(222)

如果运行执行会报出如下错误:TypeError: 'tuple' object does not support item assignment​​

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值