【Python】常见容器

news2024/11/20 2:43:36

Python容器

  • 列表
  • 元组
  • 字符串
  • 集合
  • 字典

列表

定义方法:[元素1, 元素2, …]
列表一次可以存储多个不同数据类型的数据,支持嵌套。

例如:

list1 = ["张三", 33, True]
print(list1)
print(type(list1))

list2 = [list, "李四", 11]
print(list2)
print(type(list2))

运行结果:
在这里插入图片描述

访问列表中的值:

list3 = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
print(list3[0])  # 输出列表第一个---张三
print(list3[-6])  # 输出列表倒数第六个---张三
print(list3[-1])  # 输出列表倒数第一个---孙八

运行结果:

若有多个列表嵌套:

list4 = [[1, 2, 3, 4], [10, 11, 12], [17, 18, 19]]
print(list4[1][2])
print(list4[-1][-1])

在这里插入图片描述
查找元素在列表的下标:
有则输出下标,没有则报错。

list3 = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
print(list3.index("王五"))
print(list3.index("孙行者"))

运行结果:
在这里插入图片描述

也可以以截取的方式读取列表:

list = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
# 读取 0-3,不包括4
print("list[0:4]: ",list[0:4])
# 读取 1到倒数-3,不包括倒数第二
print("list[1:-2]: ",list[1:-2])

运行结果:
在这里插入图片描述

修改特定下标的值:

# 修改list3列表中下标为2的值为 孙行者
list3[2] = "孙行者"

插入元素:

语法:列表.insert(下标,元素),在指定的下标位置,插入指定的元素

# 在list3列表中下标为2的位置插入一个 "111"
list3.insert(2,"111")

在尾部添加单个或多个元素:
添加一个:append
添加多个:extend

list3 = ["张三", "李四", "王五", "赵六", "周七", "孙八"]
list3.append("九九")
print(list3)
list4=[666,777,888]
list3.extend(list4)
print(list3)

运行结果:
在这里插入图片描述

删除指定下标的元素:
del:直接删除
pop:删除并返回要删除的值
在这里插入图片描述
删除指定元素:
若有多个王五,则只删除第一个王五

list.remove("王五")

清空列表:

list.clear()

统计某元素在列表中的个数:

list.count("王五")

统计列表元素个数:
len(列表名)

num = len(list)

遍历列表:

list = ["张三", "李四", "王五"]
for s in list:
    print(s)

还有种玩法:

# [表达式 for 变量 in 列表 if 条件]
# 遍历 list ,如果是2的倍数,那就×2
list = [1, 2, 3, 4, 5, 6]
print([x * 2 for x in list if x % 2 == 0])
# 运行结果为:[4, 8, 12]

元组

列表中的元素是可以修改的,如果不想被修改,我们可以使用元组。元组里的类型也可以是不一样的,同样支持嵌套,支持下标访问,使用()定义:

t1=("zhangsan","lisi",123)
print(type(t1))
print(t1)

运行结果:
在这里插入图片描述

注意:当元组中只有一个元素时,需要在后面加上逗号,否则就不会被当成元组:

在这里插入图片描述
元组中的元素不可修改,但是可以进行拼接成一个新的元组;

t1=("zhangsan","lisi")
t2=("zhangsan",)
t3 = t1 + t2

字符串

用双引号或单引号:

str = "zhangsan"
print(str[0])  # 输出下标为 0的字符
print(str[-1])  # 输出下标倒数第一
print(str[1:])  # 从下标 1 开始输出,直到最后
print(str.index('san'))  # 输出 san 的起始位置

在这里插入图片描述

字符串替换 并不是修改字符串,而是生成一个新的字符串:

str = "zhangsan"
# 将 str 中的字符串 a,替换成 *
# 输出 zh*ngs*n
print(str.replace("a","*"))

字符串分隔:

str="张三 李四 王五 赵六 周七"
# 使用空格分隔,若要使用逗号或其他字符分隔,则在 split 中填入相应的即可。
list1=str.split(" ")
print(list1)

去除首尾空格和指定内容:
在这里插入图片描述

逆置:

str="123456"
list1=[1,2,3,4,5]
t1=("zhangsan","lisi","wangwu")
print(str[::-1])
print(list1[::-1])
print(t1[::-1])

运行结果:
在这里插入图片描述

集合

集合是一个无序不重复(无序,所以不支持下标访问)的序列,使用大括号{}创建集合,用逗号分隔:

set1 = {1, 2, 3, 1, 5, 4, 2, 3}
print(set1)

运行结果:
在这里插入图片描述

添加、删除等操作

set1 = {"张三", "李四", "王五", "赵六", "周七", "孙八"}
# 添加元素
set1.add("老大")
print(set1)
# 删除指定元素
set1.remove("老大")
print(set1)
# 随机取出元素,取出后原集合就不存在这个元素了
print(set1.pop())
print(set1)

运行结果:
在这里插入图片描述

差集

set1 = {1, 2, 3, 4, 5}
set2 = {3, 4, 5, 6, 7}
# 取差集,存在set1中,但不存在set2中,set1不会变
print(set1.difference(set2))
print(f"set1结果:{set1}")
# 同样是差集,但是会把结果重新赋给set1
set1.difference_update(set2)
print(f"set1结果:{set1}")

运行结果:

在这里插入图片描述

合并集合

# 合并两个集合,并去除重复元素
print(set1.union(set2))

字典

用键值对表示,键和值之间用冒号分隔,键值对之间用逗号分隔,key 不允许重复,如果重复,后面的则会覆盖前面的,格式如下:

d = {key1 : value1, key2 : value2, key3 : value3 }
d1 = {"name": "zhangsan", "age": 18}

字典也可以嵌套:

d1 = {
    "张三":{
        "语文":77,
        "数学":88,
        "英语":68
    },
    "李四": {
        "语文": 86,
        "数学": 94,
        "英语": 78
    },
    "王五": {
        "语文": 87,
        "数学": 92,
        "英语": 58
    }
}

可通过如下方式访问:

print(f"学生信息: {d1}")
d2 = d1["张三"]
print(f"张三成绩: {d2}")
math_score = d1["张三"]["数学"]
print(f"张三数学成绩:{math_score}")

在这里插入图片描述

字典常见操作:

dict1 = {"张三": 23, "李四": 31, "王五": 44}
# 添加或更新键值对,原字典中没有则添加,有则更新
dict1["赵六"] = 33
print(dict1)
# 删除
dict1.pop("张三")
print(dict1)
# 获取全部的 key
print(dict1.keys())
# 获取字典长度
print(len(dict1))
# 清空字典
dict1.clear()
print(dict1)

运行解果:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1572938.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

企业数据资产评估的财报显性化及数据资产入表的主要应用场景

一、背景 近年来,企业“数据资产”的概念不断受政府/企业重视和建设.根据《数据资产评估指导意见》规定,数据资产评估是指资产评估机构及其资产评估专业人员遵守法律、行政法规和资产评估准则,根据委托对评估基准日特定目的下的数据资产价值…

Halcon的HWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)

Halcon的HSmartWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI) 文章目录 Halcon的HSmartWindowControl控件在C#WinForm中的使用介绍(包括绘制ROI)一、 引入hSmartWindowControl控件二、 编写打开图像功能三、 编写绘制RO…

【热门话题】Stable Diffusion:本地部署教程

🌈个人主页: 鑫宝Code 🔥热门专栏: 闲话杂谈| 炫酷HTML | JavaScript基础 ​💫个人格言: "如无必要,勿增实体" 文章目录 Stable Diffusion:本地部署教程一、引言二、环境准备1. 硬件配置2. …

Java多态练习2

设计金融产品类Financial,属性包括产品名称、产品介绍、起投金额、产品期限(int)、年化收益(百分数);方法包括发布、截止、投资。 设计金融产品类子类: 基金产品Fund,继承金融产品类…

【JAVASE】带你了解面向对象三大特性之一(继承)

✅作者简介:大家好,我是橘橙黄又青,一个想要与大家共同进步的男人😉😉 🍎个人主页:再无B~U~G-CSDN博客 1.继承 1.1 为什么需要继承 Java 中使用类对现实世界中实体来…

牛客网BC-125 序列中整数去重复(难题讲解)

题目如下 --------------------------------------------------------------------------------------------------------------------------------- 题目讲解(思路) -------------------------------------------------------------------------------…

爱上数据结构:二叉树的基本概念

​ ​ 🔥个人主页:guoguoqiang. 🔥专栏:数据结构 ​ 一、树的基本概念 1.概念 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因 为它看起…

机器学习 - multi-class 数据集训练 (含代码)

直接上代码 # Multi-class datasetimport numpy as np RANDOM_SEED 42 np.random.seed(RANDOM_SEED) N 100 # number of points per class D 2 # dimensionality K 3 # number of classes X np.zeros((N*K, D)) y np.zeros(N*K, dtypeuint8) for j in range(K):ix rang…

cJSON(API的详细使用教程)

我们今天来学习一般嵌入式的必备库,JSON库 1,json和cJSON 那什么是JSON什么是cJSON,他们之间有什么样的关联呢,让我们一起来探究一下吧。 JSON(JavaScript Object Notation)是一种轻量级的数据交换格式&…

tomcat 结构目录

bin 启动,关闭和其他脚本。这些 .sh文件(对于Unix系统)是这些.bat文件的功能副本(对于Windows系统)。由于Win32命令行缺少某些功能,因此此处包含一些其他文件。比如说:windows下启动tomcat用的是…

物理层习题及其相关知识(谁看谁不迷糊呢)

1. 对于带宽为50k Hz的信道,若有4种不同的物理状态来表示数据,信噪比为20dB 。(1) 按奈奎斯特定理,信道的最大传输数据速率是多少?(2) 按香农定理,信道的最大传输数据速度…

JAVAEE之Spring Boot日志

1. 日志概述 1.1 学习日志的原因 ⽇志对我们来说并不陌生, 从JavaSE部分, 我们就在使用 System.out.print 来打印日志了. 通过打印日志来发现和定位问题, 或者根据日志来分析程序的运行过程. 在Spring的学习中, 也经常根据控制台的日志来分析和定位问题. 随着项⽬的复杂…

记录Linux系统中vim同时开多个窗口编辑文件

在使用Linux进行文本编辑的时候,通常使用vim编辑器编辑文件,当然啦,vim也可以创建文件,如果只是一个一个创建,只需要vim创建即可,但是如何一次性打开多个窗口编辑呢? 目录 1、目标:…

微信小程序uniapp+vue.js旅游攻略系统9krxx

实现了一个完整的旅游攻略小程序系统,其中主要有用户模块、用户表模块、token表模块、收藏表模块、视频信息模块、视频类型模块、景点资讯模块、门票购买模块、旅游攻略模块、景点信息模块、论坛表模块、视频信息评论表模块、旅游攻略评论表模块、景点信息评论表模块…

python 02字符串

字符串可能是用到最多的数据类型了,所有标准序列操作(索引、切片、乘法、成员资格检查、长度、最小值和最大值)都适用于字符串 但别忘了字符串是不可变的,因此所有的元素赋值和切片赋值都是非法的。 1.居中效果 默认为空格 可…

搭建电商购物独立站抓取主流电商产品数据的方法:工具+电商数据采集API接口

分享一个抓取数据产品的方法,也是别人给我说的。 想做一个联盟产品相关的网站,然后需要采集电商网站的产品。咨询大佬告诉我,大量级电商商品数据的采集可以接入专业的电商数据采集API接口,也可以用webscrsper,于是乎就…

【Linux】环境基础开发工具使用——vim使用

Linux 软件包管理器 yum 什么是软件包 1.在 Linux 下安装软件 , 一个通常的办法是下载到程序的源代码 , 并进行编译 , 得到可执行程序 . 2.但是这样太麻烦了 , 于是有些人把一些常用的软件提前编译好 , 做成软件包 ( 可以理解成 windows 上的安装程序) 放在一个服务器…

LangChain - Retrieval

LangChain - Retrieval 文章目录 LangChain - Retrieval文件装载机 Document loaders文本分割 Text Splitting文本嵌入模型 Text embedding models向量存储Retrievers索引 APIClassesFunctions 官方文档:https://python.langchain.com/docs/modules/data_connection…

IJKPLAYER源码分析-mediacodec硬解

前言 近期腾出了点时间,拟对IJKPLAYER做更完整的源码分析,并对关键实现细节,作为技术笔记,记录下来。包括Android端硬解码/AudioTrack/OpenSL播放,以及iOS端硬解码/AudioUnit播放,以及OpenGL渲染和Android/…

文件服务器之二:SAMBA服务器

文章目录 什么是SAMBASAMBA的发展历史与名称的由来SAMBA常见的应用 SAMBA服务器基础配置配置共享资源Windows挂载共享Linux挂载共享 什么是SAMBA 下图来自百度百科 SAMBA的发展历史与名称的由来 Samba是一款开源的文件共享软件,它基于SMB(Server Messa…