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

第 7 课Python 容器类型与相关操作

1. 容器介绍

        对象是Python中对数据的抽象,Python程序中的所有数据都是由对象或对象间关系来表示的。Python中,可包含其他对象的引用的对象,称之为“容器”。容器的例子有元组、列表和字典等。这些引用的对象是容器对象值的组成部分。
        常用的容器主要划分为两种:序列(如:列表、元组等)和映射(如:字典)。序列中,每个元素都有下标,它们是有序的。映射中,每个元素都有名称(又称“键”),它们是无序的。除了序列和映射之外,还有一种需要注意的容器——“集合”。

2. 四种容器

2.1 列表

  1.  语法:[ 123 , "456" , classObjectA , [123,"456"] ]
  2.  特征:列表使用中括号包裹,逗号隔开元素,元素类型任意,可以嵌套,可以用下标进行读写。
  3.  特点:列表元素类型不要求统一,可以对每个元素进行增删改查。可以按照下标删除元素(pop),也可以按照值删除元素(remove),可以插入元素到某个位置(insert),也可以追加元素到列表尾部(append)。
list1= [123,"123",[123,456]]

2.2 元组

  1.  语法:(123,456,789,100)。
  2.  特征:小括号包裹,逗号隔开元素,元素类型必须统一,可以嵌套但是满足类型统一,可以用下标进行读,但不可写,更不可增删。
  3.  特点:不可变的列表,所有操作都类似列表,唯一的不同就是只能查,不能增(没有append和insert),删(没有remove和pop),改(不能对元素赋值)。可以认为元组是一个元素类型必须统一且不可修改的列表,只能读里面的内容。
tuple1=(123,456,789)

2.3 集合

  1.  语法:{ 1,"23",classObjectA }。
  2.  特征:大括号包裹,逗号隔开元素,元素类型任意,可以嵌套,可以用下标读写。基本和列表一致。
  3.  特点:可以认为是自动除重的列表,且不支持排序,其他和列表没区别
set1 = {123,456,"123"}

2.4 字典

  1.  语法:{"name" :"zhangsan", "age":50}
  2.  特征:大括号包裹,逗号隔开元素,元素构成必须统一格式(由分号分隔的两部分,前半部分必须是字符串,后半部分任意),键一定是字符串,如果发现某个元素没包含冒号,则会被当做集合处理。
  3. 特点:最灵活的容器,不支持排序,可以嵌套,通过[ ] 和get 进行元素访问,不可用下标,使用pop 按键进行元素移除(没有remove)。
dict1={"123":123,"456":"abc","11":{"789":"qwe"}}

3. 容器的基本操作

3.1 列表的基本操作

分类关键字/函数/方法说明
增加append添加元素至尾部
insert在指定位置插入数据
删除clear清空列表
pop默认弹出末尾数据
pop(index)弹出指定索引数据
remove(data)移除指定数据
修改extend(列表2)将列表2的数据追加到列表
查询count(数据)统计数据出现的次数
index(内容)查询内容所在位置
其他copy将列表复制1份
sort排序
reverse逆序列表

 注意:索引是从0开始计数的;remove的参数是值,而不是索引;index是返回指定数的索引

 例程如下:      

list1=[1,2,3,4,5,6,7]
list1.append(10)
print(list1)
list1.insert(2,3)
print(list1)
list1.pop(0)
print(list1)
list1.remove(7)
print(list1)

        执行后,打印结果如下:

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

例程如下:        

list1=[1,7,3,8,5,3,4]
print(list1.index(3))
list1.sort()
print(list1)

执行后,打印结果如下:

2
[1, 3, 3, 4, 5, 7, 8]

3.2 元组的基本操作

        元组的操作类似列表,主要有以下不同:

  1.  元组没有append()、extend() 和insert() 等方法,无法向元组中添加元素。
  2.  元组没有remove() 或pop() 方法,也无法对元组元素进行del 操作,不能从元组中删除元素。

3.3 字典的基本操作

方法用法
get(key,default)返回指定键的值,如果值不在字典中返回default值
keys以列表返回一个字典所有的键盘
values以列表返回字典中的所有值
update(dict2)把字典dict2的键/值对更新到dict里
items

以列表返回可遍历的(键,值)元组数组,即

i把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。

        例程如下:               

dict1={"星期一":1,"星期二":2,"星期三":3,"星期四":4,"星期五":5}
print(dict1.get("星期一"))
print(dict1.keys())
print(dict1.values())

     执行后,打印结果如下:        

1
dict_keys(['星期一', '星期二', '星期三', '星期四', '星期五'])
dict_values([1, 2, 3, 4, 5])

        例程如下:

dict1={"星期一":1,"星期二":2,"星期三":3}
dict2={"星期四":4,"星期五":5}
dict1.update(dict2)
print(dict1)
print(dict1.items())

        执行后,打印结果如下:

{'星期一': 1, '星期二': 2, '星期三': 3, '星期四': 4, '星期五': 5}
dict_items([('星期一', 1), ('星期二', 2), ('星期三', 3), ('星期四', 4), ('星期五', 5)])


http://www.kler.cn/a/510246.html

相关文章:

  • 深入探索 Vue.js 组件开发中的最新技术:Teleport 和 Suspense 的使用
  • Word2Vec中的CBOW模型训练原理详细解析
  • nss刷题3
  • Sqlmap入门
  • cuda + cudnn安装
  • Kotlin语言的正则表达式
  • UnityEditor脚本:调用ADB推送文件到手机
  • Spring参数校验,数组入参校验 :List<E>
  • 打造智能气象预测系统:AI如何改变天气预报的未来
  • 电梯系统的UML文档04
  • 创建一个简单的spring boot+vue前后端分离项目
  • Jmeter Beanshell脚本批量提取接口的值生成csv文档
  • 蓝桥杯训练—斐波那契数列
  • 我的常用vim操作
  • Harmony OS 5.0.1 模拟器报未开启 Hyper-V解决方法
  • 华为HuaweiCloudStack(一)介绍与架构
  • 【STM32-学习笔记-13-】WDG看门狗
  • python有goto语句吗
  • 《Java开发手册》核心内容
  • Qt开发:QSqlDatabase的常见用法
  • JAVA实现捡金币闯关小游戏(附源码)
  • xclip和xsel命令行工具详解
  • 大语言模型的语境中“越狱”和思维链
  • 最新-CentOS 7安装Docker容器(适合本地和云服务器安装)
  • 统信V20 1070e X86系统编译安装PostgreSQL-13.11版本以及主从构建
  • 嵌入式工程师必学(67):SWD仿真接口(for ARM)的使用方法