python 数据容器

数据容器概念

一个可以存储多个元素的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 += 1for 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 += 1for 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.hqwc.cn/news/324526.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深入理解Vue3中的自定义指令

Vue3是一个流行的前端框架&#xff0c;它引入了许多新特性和改进&#xff0c;其中之一是自定义指令。自定义指令是一种强大的功能&#xff0c;可以让开发者在模板中直接操作 DOM 元素。本文将深入探讨 Vue3中的自定义指令&#xff0c;包括自定义指令的基本用法、生命周期钩子函…

C语言全面学习基础阶段01—C生万物

如何学好 C 语言 1. 鼓励你&#xff0c;为你叫好。 C 生万物 编程之本 长远 IT 职业发展的首选 C 语言是母体语言&#xff0c;是人机交互接近底层的桥梁 学会 C/C &#xff0c;相当于掌握技术核心 知识点一竿子打通。 IT 行业&#xff0c;一般每 10 年就有一次变革 40 年间&a…

第12课 利用openCV检测物体是否运动了

FFmpeg与openCV绝对是绝配。前面我们已经基本熟悉了FFmpeg的工作流程&#xff0c;这一章我们重点来看看openCV。 在前面&#xff0c;我们已经使用openCV打开过摄像头并在MFC中显示图像&#xff0c;但openCV能做的要远超你的想像&#xff0c;比如可以用它来实现人脸检测、车牌识…

torch.meshgrid和np.meshgrid的区别

numpy中meshgrid&#xff1a; 把数组a当作一行&#xff0c;再根据数组b的长度扩充行。 把数组b当作一列&#xff0c;再根据数组a的长度扩充列。 torch中meshgrid&#xff1a; 把数组a当作一列&#xff0c;再根据数组b的长度扩充列。 把数组b当作一行&#xff0c;再根据数组a的…

【docker】一文讲完docker搭建私有仓库

一、docker搭建私有仓库方法总结 搭建Docker私有仓库主要有以下几种方式&#xff1a; 使用Docker官方提供的Registry镜像&#xff1a;Docker官方提供了一个用于构建私有镜像仓库的Registry镜像&#xff0c;只需将镜像下载并运行容器&#xff0c;然后暴露5000端口即可使用。可以…

​iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 &#x1f4dd; 摘要&#xff1a; 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具&#xff0c;我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

数据迁移怎么测,都有哪些步骤?

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;软件测试面试题分享&#xff1a; 1000道软件测试面试题及答案&#x1f4e2;软件测试实战项目分享&#xff1a; 纯接口项目-完…

报错解决:Error creating bean with name ‘userServiceImpl‘

首先&#xff1a;spring整合MyBatis是出现这个错误&#xff1a; Exception in thread "main" org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name userServiceImpl: Unsatisfied dependency expressed through fiel…

QT上位机开发(网络程序界面开发)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 传统的上位机对接方式还是以232、485、can为主&#xff0c;随着网络的发展&#xff0c;越来越多的设备都是以网络进行通信的。毕竟相比较之前&…

对useradd进行简单扩展(shadow项目)

《 移植useradd到嵌入式Linux设备-CSDN博客》该篇文章简单描述了移植useradd命令&#xff08;当然还附带其他相关的命令&#xff09;步骤&#xff0c;十分丝滑地得到了目标文件&#xff0c;拷贝到嵌入式Linux设备后&#xff0c;通过类似下面的命令添加用户和密码到系统&#xf…

Dart调用JS对10000条定位数据滤波

使用Dart调用JS&#xff0c;还是为了练习跨语言调用&#xff1b; 一、编写对应的JS代码 平时在开发时不推荐将算法放在JS里&#xff0c;我这里是简单的做一下数据过滤&#xff1b; 首先生成一些随机定位数据&#xff0c;在实际开发中可以使用真实数据&#xff1b; // 随机定…

自定义标记

章节目录&#xff1a; 一、概述二、使用自定义标记三、注册自定义标记3.1 创建文件3.2 修改文本编码格式 四、执行测试五、结束语 一、概述 pytest 可以支持自定义标记&#xff0c;自定义标记可以把一个 web 项目划分多个模块&#xff0c;然后指定模块名称执行。譬如我可以标明…