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

3. python:列表、元组、字典、集合

文章目录

  • 一、列表
    • 创建、访问、更新、删除
    • 常用方法:count()、index()、 remove()、sort()、 copy()
  • 二、元组
    • 常用方法:len()、 max() 、min()、tuple()
  • 三、字典
    • 访问、修改、清空集合、获取字典长度
  • 四. 集合
    • 过滤重复元素、添加、删除、清空、获取长度

一、列表

Python 中没有数组,而是加入了功能更强大的列表(list),列表可以存储任何类型的数据,同一个列表中的数据类型还可以不同;列表是序列结构,可以进行序列结构的基本操作:索引、切片、加、乘、检查成员。

创建、访问、更新、删除

创建:列表中所有元素都放在一个中括号 [] 中,相邻元素之间用逗号 , 分隔
访问:通过索引访问列表中的值,还可以使用 : 截取范围内的元素
更新:除了对列表中现有元素进行修改外,还可以使用 append() 向列表中添加新元素
删除:使用 del 删除列表中元素

l = [1024, 0.5, 'Python']

# 访问
l = [1024, 0.5, 'Python']
print('l[0] -->', l[0])
print('l[1:] -->', l[1:]) # [0.5, 'Python']

# 更新
l = [1024, 0.5, 'Python']
# 修改列表中第二个元素
l[1] = 5
# 向列表中添加新元素
l.append('Hello')


l = [1024, 0.5, 'Python']
# 删除列表中第二个元素
del l[1]
print('l -->', l) # l --> [1024, 'Python']

常用方法:count()、index()、 remove()、sort()、 copy()

① count() :统计列表中某个元素出现的次数,

l = ['d', 'b', 'a', 'f', 'd']
print("l.count('d') -->", l.count('d')) #2

② index():查找某个元素在列表中首次出现的位置(即索引)

l = ['d', 'b', 'a', 'f', 'd']
print("l.index('d') -->", l.index('d')) # 0

③ remove():移除列表中某个值的首次匹配项

l = ['d', 'b', 'a', 'f', 'd']
l.remove('d')
print("l -->", l) # l --> ['b', 'a', 'f', 'd']

④ sort():对列表中元素进行排序,

l = ['d', 'b', 'a', 'f', 'd']
l.sort()
print('l -->', l) # 
l --> ['a', 'b', 'd', 'd', 'f']

⑤ copy():复制列表,


l = ['d', 'b', 'a', 'f', 'd']
lc = l.copy()
print('lc -->', lc) #lc --> ['d', 'b', 'a', 'f', 'd']

二、元组

元组(tuple)与列表类似,但元组是不可变的,可简单将其看作是不可变的列表,元组常用于保存不可修改的内容。

创建:列表中所有元素都放在一个小括号 ()中,相邻元素之间用逗号 , 分隔
访问:与访问列表中元素类似
修改:元组中元素不能被修改,我们要用
重新赋值
的方式操作,
删除:元组中的元素不能被删除,我们只能删除整个元组

tup1 = (50,)
t = (1024, 0.5, 'Python')
# 访问
print('t[0] -->', t[0])

# 删除
t = (1024, 0.5, 'Python')
del t
print('t -->', t) # NameError: name 't' is not defined

常用方法:len()、 max() 、min()、tuple()

在这里插入图片描述

三、字典

字典(dict) 是 Python 的数据结构。内容都是以键-值(key-value)的方式存在的。
dict 拥有良好的查询速度,dict 中的值可以是任意 Python 对象,多次对一个 key 赋 value,后面的 value 会把前面的 value 覆盖。

字典的内容在花括号 {} 内,键-值(key-value)之间用冒号 : 分隔,键值对之间用逗号 , 分隔,比如创建字典 d,如下所示:


d = {'name':'小明', 'age':'18'}

# 使用 dict 函数
# 方式一
l = [('name', '小明'), ('age', 18)]
d = dict(l)
print(d) # {'name': '小明', 'age': 18}

# 方式二
d = dict(name='小明', age='18')
print(d) # {'name': '小明', 'age': 18}

# 空字典
d = dict()
print(d) # {}
d = {}

访问、修改、清空集合、获取字典长度

字典中的值通过 key 进行访问

>>> d = dict(name='小明', age='18')
>>> d['name']
'小明'

# 使用 get 方法
>>> d.get('name')
'小明'

在这里插入图片描述

四. 集合

集合(set)与字典相同均存储 key,但也只存储 key,因 key 不可重复,所以 set 的中的值不可重复,也是无序的。、

集合使用花括号 {} 或者 set() 函数创建,如果创建空集合只能使用 set() 函数,以创建集合 s 为例,如下所示:

s = {'a', 'b', 'c'}

# 使用 set 函数
s = set(['a', 'b', 'c'])

# 空集合
s = set()

过滤重复元素、添加、删除、清空、获取长度

集合中重复的元素会被自动过滤掉,

>>> s = {'a', 'a', 'b', 'c', 'c'}
>>> s
{'a', 'c', 'b'}

添加元素可以使用 add 或 update 方法,如果元素已经存在,则不进行操作,


>>> s = {'a', 'b', 'c'}
>>> s.add('d')
>>> s
{'a', 'd', 'c', 'b'}
>>> s.update('e')
>>> s
{'a', 'b', 'e', 'd', 'c'}
# 添加已经存在的元素 a
>>> s.add('a')
>>> s
{'a', 'b', 'e', 'd', 'c'}

在这里插入图片描述

相关文章:

  • 【Linux】Tomcat简介及二进制安装
  • 【Java基础】Java8集合[ArrayList 常用方法讲解](源码分析+底层原理)
  • STM32F405+4G模块OTA固件升级调试记录
  • MYSQL--数据库面试题
  • 【cloud Alibaba】(二)流量控制、熔断降级(上)——Sentinel
  • 【牛客网刷题】VL1 四选一多路器
  • ES6 集合
  • Poco库使用:使用http协议通信
  • 浅谈Python+requests+pytest接口自动化测试框架的搭建
  • 【算法面试必刷Java版十八】二维数组中的查找
  • 基于AT89C51单片机的液位检测及显示电路设计
  • 深入浅出地理解Youtube DNN推荐模型
  • Group ViT(Semantic Segmentation Emerges from Text Supervision)
  • Vue.js写一个本地网址导航网站
  • STM32实现薄膜压力传感器数据采集(标准库和HAL库实现)
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • Docker下部署自己的LNMP工作环境
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Linux gpio口使用方法
  • PV统计优化设计
  • Stream流与Lambda表达式(三) 静态工厂类Collectors
  • 程序员最讨厌的9句话,你可有补充?
  • 海量大数据大屏分析展示一步到位:DataWorks数据服务+MaxCompute Lightning对接DataV最佳实践...
  • 前端之React实战:创建跨平台的项目架构
  • 如何在 Tornado 中实现 Middleware
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 正则表达式小结
  • 蚂蚁金服CTO程立:真正的技术革命才刚刚开始
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • ​LeetCode解法汇总1276. 不浪费原料的汉堡制作方案
  • ​软考-高级-系统架构设计师教程(清华第2版)【第20章 系统架构设计师论文写作要点(P717~728)-思维导图】​
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (11)MSP430F5529 定时器B
  • (13)Hive调优——动态分区导致的小文件问题
  • (第9篇)大数据的的超级应用——数据挖掘-推荐系统
  • (九)c52学习之旅-定时器
  • (牛客腾讯思维编程题)编码编码分组打印下标题目分析
  • (十八)三元表达式和列表解析
  • (五)Python 垃圾回收机制
  • (五)网络优化与超参数选择--九五小庞
  • (学习日记)2024.01.09
  • (一)u-boot-nand.bin的下载
  • (转)程序员疫苗:代码注入
  • (转)如何上传第三方jar包至Maven私服让maven项目可以使用第三方jar包
  • (自适应手机端)响应式新闻博客知识类pbootcms网站模板 自媒体运营博客网站源码下载
  • .NET/MSBuild 中的发布路径在哪里呢?如何在扩展编译的时候修改发布路径中的文件呢?
  • .NET国产化改造探索(三)、银河麒麟安装.NET 8环境
  • .NET学习教程二——.net基础定义+VS常用设置
  • .Net中的设计模式——Factory Method模式
  • /3GB和/USERVA开关
  • @Transaction注解失效的几种场景(附有示例代码)
  • [ C++ ] STL---仿函数与priority_queue
  • [ vulhub漏洞复现篇 ] Apache APISIX 默认密钥漏洞 CVE-2020-13945