python 数据容器

news2024/12/28 3:06:23

数据容器概念

一个可以存储多个元素的python数据类型

python有的数据容器

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

列表

python的列表的数据类型可以是不同的 

my_list = ["1",123,True,[123,"3333",'d',False]]

for item in my_list:
    print(f"type={type(item)}")

       下标索引

my_list = ["1",123,True,[123,"3333",'d',False]]

for item in my_list:
    print(f"type={type(item)}")

#索引顺序取
print(my_list[0])
print(my_list[1])
print(my_list[2])
print(my_list[3])

#索引倒序取
print(my_list[-1])
print(my_list[-2])
print(my_list[-3])
print(my_list[-4])

#取嵌套元素
print(my_list[-1][0])
print(my_list[-1][1])
print(my_list[-1][2])
print(my_list[-1][3])
获取元素下标
my_list = ["1",123,True,[123,"3333",'d',False]]
#获取元素下标
item = my_list.index("1")
print(f"item={item}")
item = my_list.index(123)
print(f"item={item}")
item = my_list.index(True)
print(f"item={item}")
 增删改查 遍历
my_list = ["1",123,True,[123,"3333",'d',False]]
#获取元素下标
item = my_list.index("1")
print(f"item={item}")
item = my_list.index(123)
print(f"item={item}")
item = my_list.index(True)
print(f"item={item}")
 

my_list = ["1",123,True,[123,"3333",'d',False]]
#list改
my_list[0] = "apple"
print(f"index=0{my_list[0]}")

#插入元素
my_list.insert(1,"origne")
print(f"my_list=0{my_list}")

#追加
my_list.append("water")
print(f"my_list=add {my_list}")

#把别的list里面的元素追加到一个list中
my_list2 = [1,3,5,8]
my_list.extend(my_list2)
print(f"my_list=extend {my_list}")

#删除
del my_list[1]
print(f"my_list=del {my_list}")

item = my_list.pop(0)
print(f"my_list=pop item= {item} list={my_list}")


my_list.remove(123)
print(f"my_list=remove {my_list}")

my_list.clear()
print(f"my_list= {my_list}")


#元素数量统计
my_list = [1,2,3,4,5,6,7,81,1,1,1,4,4,5,6,7,5,4]
count1 = my_list.count(1)
print(f"my_list= {my_list}  item=1 count={count1}  len={len(my_list)}")


#遍历
index = 0
while index < len(my_list):
   print(f"index={index} element={my_list[index]}")
   index += 1

for item in my_list:
    print(f"type={type(item)}")

元组. 

元组的内容是不支持修改的 

#定义 元组的元素类型不必统一
t1 = (1,"h",[1,2,3])
#空元组
t2 = ()
t3 = tuple()
#定义单个元素的元组
t4 = ("hello",)
#元组嵌套
t5 = ((1,2,3),(4,5,6))
print(f"element = {t5[1][2]}")

#元素索引
t6 = ("h","e","l","l","o")
print(f"index = {t6.index("o")}")
print(f"indexl = {t6.index("l")}")

print(f"count = {t6.count("l")}")

#长度
length = len(t6)
print(f"t6.length={length}")

#遍历
index = 0
while index < len(t6):
    print(f"indx={index} item = {t6[index]}")
    index += 1

for item in t6:
    print(f"item = {item}")

字符串

str = "hello world"
value1 = str[0]
value2 = str[6]
print(f"value1={value1} value2={value2}")

value = str.index("w")
print(f"value={value}")

#字符串替换
newStr = str.replace("l","y")
print(f"newStr={newStr}  str = {str}")

#字符串分割
my_str = "hello python item cast"
my_list = my_str.split(" ")
print(f"mystr={my_str} my_list={my_list}")

#字符串去除空格
my_str = "  hello china  "
my_str = my_str.strip()
print(f"mystr={my_str}")
#去除前后指定子符
my_str = "llc  hello china  elll"
new_str = my_str.strip("l")
print(f"mystr={my_str} new_str={new_str} lcount={my_str.count("l")}")


for item in my_str:
    print(f"item={item}")

序列

切片 从序列中取出的子序列

my_list = [0,1,2,3,4,5,6,7,8,9,10]
result = my_list[1:4]
print(f"result={result}")

my_tuple = (0,3,2,1,4,5,7,8)
result2 = my_tuple[:]
print(f"result2={result2}")

#开始:结尾:步长
my_str = "0123456789"
result3=my_str[::2]
print(f"结果是3:{result3}")



my_str = "0123456789"
result3=my_str[::-1]
print(f"结果是4:{result3}")


my_list = [0,1,2,3,4,5,6,7,8,9,10]
result4=my_list[3:1:-1]
print(f"result4: = {result4}")

my_tuple = (0,1,2,3,4,5,6,7)
result5 = my_tuple[::-2]
print(f"result5: = {result5}")

set集合

相对于list 无序 不重复 不支持索引

my_set = {"hello","world","good","morning","hello"}
set2 = set()


my_set.add("qwe")
print(f"myset={my_set}")

my_set.remove("hello")

print(f"myset={my_set}")


element = my_set.pop()
print(f"element = {element} myset={my_set}")

#清空
my_set.clear()
print(f"myset={my_set}")

#集和差集
set1 = {1,2,3,4,5}
set2 = {2,4,6,7,8}
set3 = set1.difference(set2)
print(f"set1={set1}")
print(f"set2={set2}")
print(f"set3={set3}")
print("=-=======")
#消除差集
set1.difference_update(set2)
print(f"set1={set1}")
print(f"set2={set2}")
print("=-=======")
#合并集合
set1 = {1,2,3,4,5}
set2 = {2,4,6,7,8}
set3 = set1.union(set2)
print(f"set1={set1}")
print(f"set2={set2}")
print(f"set3={set3}")
#统计集合元素个数
print(f"len={len(set3)}")

for item in set3:
    print(f"item={item}")

字典

key : value

#定义
dic = {"num":10,"name":"xxxx"}
dic1 = {}
dic3 = dict()

dic4 = {"title":"xxx","des":"qqqq","score":100,"downloadCount":33333}
allkey  = dic4.keys()
print(f"allkey={allkey}")

for key in allkey:
    print(f"key={key} value = {dic4[key]}")

#增删改查

#增
dic4["ccc"] = "dddddd"
print(f"dic4={dic4}")

#删
del dic4["score"]
print(f"dic4={dic4}")
dic4.pop("des")
print(f"dic4pop={dic4}")
dic4.clear()
print(f"dic4clear{dic4}")
#改=
dic4["title"] = "111"
print(f"dict[title]={dic4["title"]}")
#查
print(f"dict[title]={dic4["title"]}")

总结

通用操作

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

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

相关文章

kubectl常用命令(全局篇)

格式 -o [cmd] -o json|yaml|wide 如&#xff1a;输出json格式 kubectl get ns ingress-nginx -o json 获取基本信息get #查看集群基本信息 kubectl get cs|pods|nodes|ns|svc|rc|deployments kubectl get cs kubectl get pods kubectl get nodes kubectl get ns kubectl g…

【Linux Shell】8. test 命令

文章目录 【 1. 数值测试 】【 2. 字符串测试 】【 3. 文件测试 】 Shell中的 test 命令用于检查某个条件是否成立&#xff0c;它可以进行数值、字符和文件三个方面的测试。 【 1. 数值测试 】 参数作用-eq等于则为真-ne不等于则为真-gt大于则为真-ge大于等于则为真-lt小于则…

citeSpace保姆级安装使用教程

citeSpace保姆级安装使用教程 文章目录 citeSpace保姆级安装使用教程CiteSpace功能与参数区安装使用知网数据导出citespace数据导入结果 设置操作隐藏节点 CiteSpace功能与参数区 安装 citeSpace安装教程 citespace下载 网址&#xff1a;https://citespace.podia.com/ 安装之…

应用层网络协议

tags: [“计算机网络”] descripution: “学习应用层的一些常用协议” 网络协议&#xff1a;约定的信息传输的格式&#xff0c;如几个字节是消息头、消息头记录什么信息之类的&#xff1b;c/s架构&#xff1a;不一定是两台计算机&#xff0c;而是两个应用、两个端口工具&#…

【Java集合篇】HashMap、Hashtable 和 ConcurrentHashMap的区别

HashMap、Hashtable和ConcurrentHashMap的区别 ✔️ 三者区别✔️ 线程安全方面✔️继承关系方面✔️ 允不允许null值方面✔️为什么ConcurrentHashMap不允许null值? ✔️ 默认初始容量和扩容机制✔️遍历方式的内部实现上不同 ✔️ 三者区别 ✔️ 线程安全方面 HashMap是非线…

异步任务判断执行和重复使用实现类

主要是展示一下如何在书写异步任务判断的时候&#xff0c;如何根据返回值类型进行重复使用相同接口里面的不同实现类的方法 /*** 父类接口* **/ public interface Exceutor {String getTaskType();void excetuor(String s); }/*** 异步处理任务的任务类型** author yangziqian…

万界星空科技MES系统中的生产管理

MES系统能够帮助企业实现生产计划管理、生产过程控制、产品质量管理、车间库存管理、项目看板管理等&#xff0c;提高企业制造执行能力。 万界星空MES系统特点&#xff1a; 1. 采用强大数据采集引擎、整合数据采集渠道&#xff08;RFID、条码设备、PLC、Sensor、IPC、PC等&…

【JAVA】异常体系

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; JAVA ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 Exception&#xff08;异常&#xff09;: Error: 结语 我的其他博客 前言 在Java编程中&#xff0c;异常处理是一个至关…

python练习3【题解///考点列出///错题改正】

一、单选题 1.【单选题】 ——可迭代对象 下列哪个选项是可迭代对象&#xff08; D&#xff09;&#xff1f; A.(1,2,3,4,5) B.[2,3,4,5,6] C.{a:3,b:5} D.以上全部 知识点补充——【可迭代对象】 可迭代对象&#xff08;iterable&#xff09;是指可以通过迭代&#xff…

揭秘人工智能:探索智慧未来

&#x1f308;个人主页&#xff1a;聆风吟 &#x1f525;系列专栏&#xff1a;数据结构、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 &#x1f4cb;前言一. 什么是人工智能?二. 人工智能的关键技术2.1 机器学习2.2 深度学习2.1 计算机…

基于web3.js和ganache实现智能合约调用

目的&#xff1a;智能合约发布到本地以太坊模拟软件ganache并完成交互 准备工作&#xff1a; web3.jsganache模拟软件 ganache参数配置 从ganache获取一个url&#xff0c;和一个账号的地址&#xff0c; url直接使用图中的rpc server位置的数据即可 账号address从下列0x开头…

深度学习(Pytorch版本)

零.前置说明 1、code 2、视频 数据预处理实现_哔哩哔哩_bilibili

RoadMap8:C++中类的封装、继承、多态与构造函数

摘要&#xff1a;在本章中涉及C最核心的内容&#xff0c;本文以C中两种基础的衍生数据结构&#xff1a;结构体和类作为引子&#xff0c;从C的封装、继承与多态三大特性全面讲述如何在类这种数据结构进行体现。在封装中&#xff0c;我们讲解了类和结构体的相似性&#xff1b;在继…

2023南京理工大学通信工程818信号系统及数电考试大纲

注&#xff1a;&#xff08;Δ&#xff09;表示重点内容。具体内容详见博睿泽信息通信考研论坛 参考书目&#xff1a; [1] 钱玲&#xff0c;谷亚林&#xff0c;王海青. 信号与系统&#xff08;第五版&#xff09;. 北京&#xff1a;电子工业出版社 [2] 郑君里&#xff0c;应…

Profinet转Modbus网关助你畅享智能工业

Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;具有广泛的应用价值。无论是汽车制造、机械加工还是能源管理&#xff0c;都可以通过使用该网关&#xff0c;实现设备之间的高效通信。其次&#xff0c;Modbus转Profinet网关&#xff08;XD-MDPN100/200&#xff09;…

JVM篇:直接内存

直接内存 直接内存并不是JVM的内存结构&#xff0c;直接内存是操作系统的内存&#xff0c;Java本身并不能对操作系统的内存进行操作&#xff0c;而是通过调用本地方法。直接内存常用于NIO作为缓冲区存在&#xff0c;分配成本较高但是读写性能好&#xff0c;并且不受JVM内存回收…

产品设计的七个步骤详解

我们生活中使用的大大小小的东西都需要进行产品设计&#xff0c;那么什么是产品设计呢&#xff1f;产品设计是指从制定新产品设计任务到开发企业产品样品截止日期的一系列技术任务。让我分享一些产品设计步骤。 业务分析-要做什么业务分析 首先是制作业务流程图&#xff0c;这…

使用 dbgate 在 sealos 上完美管理 mysql pgsql 等数据库

先登录 sealos 创建数据库&#xff0c;可以创建个 pgsql: 再到模版市场启动 dbgate: 配置数据库的连接信息&#xff0c;即可搞定收工 sealos 以kubernetes为内核的云操作系统发行版&#xff0c;让云原生简单普及 laf 写代码像写博客一样简单&#xff0c;什么docker kubernete…

ubuntu18.04+realsenseD455制作TUM数据集

教程目录 一、本机环境二、安装RealSense SDK三、录制rosbag四、制作数据集四、安装ROS-RealSense五、测试数据集一、本机环境 Ubuntu系统ROS系统RealSense18.04melodicD455二、安装RealSense SDK 1、首先注册服务器的公钥 sudo apt-key adv --keyserver keyserver.ubuntu.co…

crontab定时任务不执行的原因

1.crond服务未启动 默认是开启的 2.权限问题 比如&#xff1a;脚本没有x执行权限&#xff0c; 解决方法&#xff1a; 增加执行权限&#xff0c;或者用bash abc.sh的方法执行 也有可能crontab任务所属的用户对某个目录没有写权限&#xff0c;也会失败 3.路径问题 建议使用绝…