首页 > 编程语言 >Python数据容器

Python数据容器

时间:2023-08-06 12:44:52浏览次数:47  
标签:容器 Python my list stu score print 数据 字典

目录

一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素,每一个元素,可以是任意类型的数据,如字符串、数字、布尔等。

一、分类

根据特点的不同分类数据容器(是否支持重复元素、是否可以修改、是否有序等):

  1. 列表(list)
  2. 元组(tuple)
  3. 字符串(str)
  4. 集合(set)
  5. 字典(dict)
二、数据容器:list列表
1.定义语法

列表的定义语法:

[元素,元素,元素,...]

元素:数据容器内的每一份数据,都称之为元素,以[]作为标识,列表内每一个元素之间用逗号“,”隔开

元素的数据类型无限制,甚至元素可以是列表,这样就定义了嵌套列表。

2.下标索引

列表的每个元素的编号称之为下标索引:

  • 从前向后的方向,编号从0开始递增。
  • 从后向前的方向,编号从-1开始递减。

通过下标索引取出对应位置的元素:

列表[下标]

下标索引的注意事项:

注意下标索引的取值范围,超出范围无法取出元素,并且会报错。

# 定义一个列表
my_list = ['zhangsan','lisi','ydh']
print(my_list)

print(type(my_list)) # <class 'list'>  使用type()函数打印出my_list的类型

输出结果如下:

['zhangsan', 'lisi', 'ydh']
<class 'list'>

# 定义一个嵌套的列表
my_list = [[1,2,3],[4,5,6]]

print(my_list[1][1]) # 取出嵌套列表中的元素  5

输出结果为:5

my_list = ['tom','rose','jack']
# 从前向后
print(my_list[0]) # tom
print(my_list[1]) # rose

# 从后向前
print(my_list[-1]) # jack

print(my_list[-2]) # rose
 
print(my_list[3])

输出结果为:

tom
rose
jack
rose

print(my_list[3])
IndexError: list index out of range

3.常用操作

(1)清空列表内容

my_list = [1, 2, 3]

my_list.clear()
print(my_list)   # 结果: []

(2)统计列表中有多少元素

my_list = [1, 2, 3, 4, 5]

print(len(my_list))  # 结果:5
4.list(列表)的遍历之for循环

语法:for 临时变量 in 数据容器:

​ 对临时变量进行处理

下面是一个例子:

def Zk_Output(self):
    self.zk_info_list.clear() # 第一,使用列表前先清理,保证后续append时列表是空的
    self.yc_out_list.clear()
    # 存储钻孔信息到字典
    zk_info_dict = {
        'Zk_No': self.Zk_No,
        'Zk_name': self.Zk_name,
        'Zk_Yc_Count': self.Zk_Yc_Count
    }
    self.zk_info_list.append(zk_info_dict) # 将字典加到zk_info_list这个列表里

    for yc in self.yc_class_list:
        self.yc_out_list.append(yc.Yc_Output())

    data = self.zk_info_list + self.yc_out_list
    return data

for yc in self.yc_class_list: 遍历self.yc_class_list列表中的每个yc元素

self.yc_out_list.append(yc.Yc_Output()):调用yc.Yc_Output()方法,并将返回值添加到yc_out_list这个列表里去

三、数据容器:str字符串

字符串是字符的容器,一个字符串可以存放任意数量的字符

注:字符串是无法修改的数据容器,即字符串一旦被定义,无法修改里面的内容,可以给这串字符串再拼接其他字符串,但它形成的是新的字符串,已经不是原来的那个

1.常用操作

(1)字符串的分割

name = "是故无贵无贱,无长无少,道之所存,师之所存也"
name_list = name.split(",")

print(name_list)

拆分结果为:

['是故无贵无贱', '无长无少', '道之所存', '师之所存也']

(2)去前后格

my_str = " alfhuu and aklfe "

print(my_str.strip())

去除后结果为:

alfhuu and aklfe

(3)去前后指定字符串

my_str = "12alfhuu and aklfe21"

print(my_str.strip("12"))

结果为:

alfhuu and aklfe

注:传入的是"12",但其实是按照单个字符,即:”1”和”2”都会移除

四、数据容器:dict字典

字典的定义使用{},不过存储的元素是一个个的:键值对

  • 使用{}存储元素,每一个元素都是一个键值对
  • 每一个键值对包含key和value(用冒号分隔)
  • 键值对之间使用逗号分隔
  • Key和Value可以是任意类型的数据(Key不可为字典)
  • Key不可重复,重复会对原有数据覆盖
1.获取字典数据

字典不可以使用下标索引但可以通过Key值来取得对于的Value

stu_score = {"张三": 99, "周赞": 87, "李四": 90}
print(stu_score["张三"])
print(stu_score["周赞"])
print(stu_score["李四"])
2.字典的嵌套及内容获取
stu_score = {
    "张三": {"语文": 77, "数学": 86, "英语": 90},
    "周赞": {"语文": 89, "数学": 74, "英语": 85},
    "李四": {"语文": 70, "数学": 99, "英语": 79},
}
print(stu_score["张三"])
print(stu_score["周赞"]["语文"])
print(stu_score["李四"]["数学"])
3.常用操作

(1)新增元素

stu_score = {
    "张三": 77,
    "周赞": 87,
    "李四": 90
}
stu_score["王五"] = 81
print(stu_score)

语法:字典[Key] = Value,结果:字典被修改,新增了元素

(2)更新元素

stu_score = {
    "张三": 77,
    "周赞": 87,
    "李四": 90
}
stu_score["张三"] = 81
print(stu_score)

语法:字典[Key] = Value,结果:字典被修改,元素被更新

(3)获取全部的key

stu_score = {
    "张三": 77,
    "周赞": 87,
    "李四": 90
}
keys = stu_score.keys()
print(keys)

语法:字典.keys(),结果:得到字典中的全部Key

(4)遍历字典

stu_score = {
    "张三": 77,
    "周赞": 87,
    "李四": 90
}
for key in stu_score.keys():
    print(f"学生:{key}," f"分数:{stu_score[key]}")

语法:for key in 字典.keys(),结果:得到字典中的全部Key以及对应的值

(5)字典常用操作总结

img

五、数据容器对比总结

img

标签:容器,Python,my,list,stu,score,print,数据,字典
From: https://www.cnblogs.com/yanni123/p/17609292.html

相关文章

  • nvidia-docker启动容器报错 Unknown runtime specified nvidia
    使用nvidia-docker创建容器时报错:Errorresponsefromdaemon:Unknownruntimespecifiednvidia.See'dockerrun--help'.主要原因在于配置docker镜像时,daemon.json文件被修改了。只要添加对应内容即可。vim /etc/docker/daemon.json原文件:{"registry-mirr......
  • 第4天- 1分钟 快速Docker安装clickhouse 数据库
    1.获取clickhouse镜像dockerpullyandex/clickhouse-serverdockerpullyandex/clickhouse-client2.查看安装的镜像dockerimages3.启动server端mkdirclickhousedockerrun-d--nameclickhouse-test-server--ulimitnofile=262144:262144--volume=/clickhouse:......
  • 【JavaScript02】数据类型
    前言JavaScript数据类型可以分为基本类型和对象类型两大类基本类型:字符串(String)、数字(Number)、布尔(Boolean)、空(Null)、未定义(Undefined)、Symbol。对象类型:对象(Object)、数组(Array)、函数(Function),还有两个特殊的对象:正则(RegExp)和日期(Date)。typeof查看数据类型......
  • 数据结构:堆 heap
    堆分为小顶堆和大顶堆,其本质是一颗完全二叉树,不同点在于:除叶子节点外,小顶堆的每个父节点的key都要比其左右两个子节点的key小;大顶堆的每个父节点的key都要比其左右两个子节点的key大。其中,key是节点的取值,index为节点在树中的索引或者位置。小顶堆/大顶堆的特点在于,其根节点一定......
  • 快速入门OpenCv(python版)
    OpenCV是一个(开源)发行的跨平台计算机视觉库,可以运行在Linux、Windows和MacOS操作系统上。它轻量级而且高效——由一系列C函数和少量C++类构成,同时提供了Python、Ruby、MATLAB等语言的接口,实现了图像处理和计算机视觉方面的很多通用算法。在学习过程中遇到问题最好的办法就是......
  • jinjat 基于dbt 构建低代码数据应用
    jinjat的设计还是比较有意思的,直接利用了dbt,同时利用了一个analyses配置,analyses在dbt中更多属于一个基于现有的模型进行编译,但是不进行执行,jinjat就利用了功能,但是扩展了下参考使用模型analysis/my_first_api.sql {%-setquery=request().query%}......
  • 前端学习笔记202307学习笔记第六十一天-Dart的数据类型详解7
        ......
  • 前端学习笔记202306学习笔记第三十八天-封装检测数据类型得方法1
      ......
  • 记录小知识 数据库设置自动填充更新创建字段时间
    1,在数据库中设置该字段类型为timestamp  2,设置默认值为 CURRENT_TIMESTAMP3,更新字段需要点击勾选根据当前时间戳更新 而创建时间是不需要勾选的因为创建只需要一次 ......
  • spss软件哪个版本最好用?spss数据分析软件下载 官方版特色
    SPSS是非专业统计人员的首选统计软件,SPSS采用类似EXCEL表格的方式输入与管理数据,数据接口较为通用,能方便的从其他数据库中读入数据。其统计过程包括了常用的、较为成熟的统计过程,完全可以满足非统计专业人士的工作需要。对于熟悉老版本编程运行方式的用户,SPSS还特别设计了语法生成......