一、List数据类型
1、概述:list(列表)中可以包含多个元素,且元素类型可以不相同。
每一元素可以是任意数据类型,包括列表(即列表嵌套)及后面要介绍的元组、集合、字典。
所有元素都写在一对方括号 "[ ]" 中,每个元素之间用逗号分隔。
对于不包含任何元素的列表,即[ ],称位空列表。
2、列表元素索引:
(1)列表中元素的索引方式与字符串中元素的索引方式完全相同,也支持从前向后索引和从后向前索 引两种方式
(2)与字符串相同,利用下标“[]”可以从已有列表中取出其中部分元素形成一个新列表,其语法格式为:ls[beg:end]
其中,beg是要取出的部分元素在ls中的起始下标,end是要取出的部分元素在ls中的结束下标。
注意:省略beg,则表示从ls中的第一个元素开始,等价于ls[0:end];省略end,则表示要取出的部分元素从beg位置开始
一直到最后一个元素(包括最后一个元素);beg和end都省略则取出ls中的所有元素。
(3)例如:
对于ls=[1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3]这个列表,其各元素的下标为:
3、访问单个元素:
如果只访问列表ls中的某一个元素,则可以使用下面的写法:ls[idx],其中,idx是要访问的元素的下标
ls=[1, 2.5, 'test', 3+4j, True, [3,1.63], 5.3]
print(ls[2]) #输出“test”
print(ls[-3]) #输出“True”
注意:ls[beg:end]返回的仍然 是 一 个 列 表 ; 而ls[idx]返回的是列表中的一个元素。
4、元素修改:
通过下标“[ ]” 不仅可以访问列表中的某个元素,还可以对元素进行修改,例如
print(ls) #输出“[1, 2.5, 'test', (3+4j), True, [3, 1.63], 5.3]”
ls[2]=15 #将列表ls中第3个元素的值改为15
ls[1:4]=['python',20] #将列表ls中第2至4个元素替换为['python',20]中的元素
ls[0:2]=[] #将列表ls中前两个元素替换为空列表[],即将前两个元素删除
注意:在对列表中的元素赋值时,既可以通过“ls[idx]=a”这种方式修改单个元素的值,也可以通过“ls[beg:end]=b”这种方式修改一个元素或同时修改连续多个元素的值。但需要注意,在通过“ls[beg:end]=b”这种方式赋值时,b是另一个列表,其功能是用b中个元素替换ls中beg至end-1这些位置上的元素,赋值前后列表元素数量允许发生变化。
二、Tuple数据类型
1、概述:Tuple(元组)与列表类似,可以包含多个元素,且元素类型可以不相同,书写时每两个元素之间也是用逗号分隔。与列表的不同之处在于:元组的所有元素都写在一对小括号“()”中,且元组中的元素不能修改。对于不包含任何元素的元组,即(),称为空元组。
2、元组元素索引:
元组中元素的索引方式与列表中元素的索引方式完全相同。与列表相同,利用下标“[]”可以从已有元组中取出其中部分元素形成一个新元组,其语法格式为:t[beg:end]其中,t为元组,beg是要取出的部分元素在t中的起始下标,end是要取出的部分元素在t中的结束下标。
3、单一元素访问:
如果只访问元组t中的某一个元素,则可以使用下面的写法:
t[idx] 其中,idx是要访问的元素的下标
注意:字符串、列表和元组的元素都是按下标顺序排列,可通过下标直接访问,这样的数据类型统称为序列。其中,字符串和元组中的元素不能修改,而列表中的元素可以修改。
三、Set数据类型
1、概述:与元组和列表类似,Set {集合} 中同样可以包含多个不同类型的元素,但集合中的各元素无序、不允许有相同元素且元素必须是可哈希(hashable)的对象。可哈希对象是指拥有__hash__(self) 内置函数的对象。列表、集合和字典类型的数据不是可哈希对象,所以它们不能作为集合中的元素。元组、字符串和数值都是可哈希对象。
2、创建集合:
集合中的所有元素都写在一对大括号“{}”中,各元素之间用逗号分隔。创建集合时,既可以使用{},也可以使用set函数。set函数的语法格式如下:set([iterable])其中,iterable是一个可选参数,表示一个可迭象。
注意:可迭代(iterable)对象是指可以一次返回它的一个元素,如前面学习的字符串、列表、元组都是可迭代的数据类型。
例如:1.a={10, 2.5, 'test', 3+4j, True, 5.3, 2.5}
2.print(a) #输出“{True, 2.5, 5.3, 10, (3+4j), 'test'}”
3.b=set('hello')
4.print(b) #输出“{'e', 'l', 'o', 'h'}”
5.c=set([10, 2.5, 'test', 3+4j, True, 5.3, 2.5])
6.print(c) #输出“{True, 2.5, 5.3, 10, (3+4j), 'test'}”
7.d=set((10, 2.5, 'test', 3+4j, True, 5.3, 2.5))
8.print(d) #输出“{True, 2.5, 5.3, 10, (3+4j), 'test'}”
3、注意:
与字符串、列表、元组等序列类型不同,集合中的元素不能使用下标方式访问。集合主要用于做并、交、差等集合运算,以及基于集合进行元素的快速检索。{}用于创建空字典,如果要创建一个空集合,则需要使用set()。
四、Dictionary数据类型
1、概述:Dictionary{字典}是另一种无序的对象集合。但与集合不同,字典是一种映射类型,每一个元素是一个键(key):值(value)对。键必须是唯一的,即不同元素的键不能相同;另外,键必须是可哈希数据,即键不能是列表、集合、字典等类型;值可以是任意类型。对于不包含任何元素的字典,即{},称为空字典。
2、创建字典:
(1)既可以使用{},也可以使用dict函数。如果要创建一个空字典,可以使用{}或dict()。例如:
a={}
b=dict()
执行完毕后,a和b是两个不包含任何元素的空字典。
(2)如果在创建字典的同时,需要给出字典中的元素,则可以使用下面的方法:
1. {k1:v1,k2:v2,…,kn:vn} #ki和vi(i=1,2,…,n)分别是每一个元素的键和值
2. dict(**kwarg) #**kwarg是一个或多个赋值表达式,两个赋值表达式之间用逗号分隔
3. dict(z) #z是zip函数返回的结果
4. dict(ls) #ls是元组的列表,每个元组包含两个元素,分别对应键和值
5. dict(dictionary) #dictionary是一个已有的字典
这5条语句创建的5个字典对象的元素完全相同,使用print函数查看每一个变量,都能得到如下输出结果:
{'one': 1, 'two': 2, 'three': 3}
(3)zip函数的参数是多个可迭代的对象(列表等),其功能是将不同对象中对应的元素分别打包成元组,然后返回由这些元组组成的列表。在Python 3.x中为了减少内存,zip函数返回的是一对象,可以通过list函数转换 为 列 表 , 如 通 过“list(zip(['one','two','three'],[1,2,3]))” 可 得 到 列 表“ [('one', 1), ('two', 2),('three', 3)]”。
3、访问字典元素
与列表等序列对象不同,在访问字典中的元素时不能通过下标方式访问,而是通过键访问。例如:
1.info={'name':'张三', 'age':19, 'score':{'python':95,'math':92}}
2.print(info['name']) #输出“张三”
3.print(info['age']) #输出“19”
4.print(info['score']) #输出“{'python': 95, 'math': 92}”
5.print(info['score']['python']) #输出“95”
6.print(info['score']['math']) #输出“92”
- Python — List、Set、Tuple、Dictionary之间的区别、参数传递
1.list 列表 有序集合,随时增删.包含的数据类型可以不同:整数.浮点数.字符串.list.tuple.dict.set.bool.空值.常量. list = [12, 'Yummy', 19.2 ...
- python中的list、tuple和dictionary
列表 列表是python中最基本的数据结构之一,并且列表的数据项不需要具有相同的数据类型,创建一个列表,只需把逗号分隔的不同数据项使用方括号括起来即可.具体的定义式如下: list=['变量1','变 ...
- DataReader转Dictionary数据类型之妙用
datareader转dictionary有很多用处,可以输出表中部分字段转实体字段,以前需要全部字段输出或者再建一个实体模型才行,这样就可以减少数据库的输出量了,特别是某些接口的格式化输出很方便. ...
- [Python]字典Dictionary、列表List、元组Tuple差异化理解
概述:Python中这三种形式的定义相近,易于混淆,应注意区分. aDict={'a':1, 'b':2, 'c':3, 'd':4, 'e':5} aList=[1,2,3,4,5] aTuple= ...
- 一句python,一句R︱模块导入与查看、数据读写出入、数据查看函数、数据类型、遍历文件
先学了R,最近刚刚上手python,所以想着将python和R结合起来互相对比来更好理解python.最好就是一句python,对应写一句R. pandas中有类似R中的read.table的功能,而 ...
- Course1-Python数据类型总结
一. 开始正式学习前的tips: Python和其他语言有很多类似, 也有一些差异, 下面先总结了一些基本语法上的注意事项 1. 注意缩进 2. 一行语句分为多行显示: \ 3. 注释: 单行注释#, ...
- Python的基本数据类型
数据类型常用函数 type(a)-得到变量a的数据类型 isinstance(a,str)-判断a是否是字符串类型 Python中有五个标准数据类型 数字Number 字符串String 数组List ...
- python学习日记(基础数据类型及其方法02)
python的变量 python中的变量不需要声明,变量载使用前必须被赋值,变量被赋值以后才会被创建. 在python中变量就是变量,没有数据类型.我们所说的类型是变量所指向内存中的对象的类型. py ...
- Python数据类型的显式转换
数据类型的显示转换,也称为数据类型的强制类型转换,是通过Python的内建函数来实现的类型转换. 显式转换的多种类型: int(x [,base]) ⇒ 将x转换为一个十进制的整数 long(x [, ...
随机推荐
- 解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry'
解决selenium.common.exceptions.InvalidArgumentException: Message: invalid argument: invalid 'expiry' ...
- S10 TES的八强赛,创造了奇迹,看看比赛时网友们怎么说的
前言 本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 我相信很多观众会和我一样吧,当TES赢下第一局后开始心怀侥幸,赢下第二局后觉 ...
- Ansible之YAML语言
playbook写yml语句,若干模块发给Ansible,变成一个一个play,多个片段组合起来变成大片. 最终还是要读取主机清单,来确定作用在哪些机器上. YAML语言 YAML是一个可读性高的用来 ...
- CentOS8 安装
CentOS8 1911 下载 https://mirrors.aliyun.com/centos/8/isos/x86_64/CentOS-8.1.1911-x86_64-dvd1.iso Step ...
- 雨露均沾的OkHttp—WebSocket长连接的使用&源码解析
前言 最近老板又来新需求了,要做一个物联网相关的app,其中有个需求是客户端需要收发服务器不定期发出的消息. 内心OS:
- docker 启动mysql 挂载宿主机目录
在使用docker run 运行镜像获取容器时,有些容器会自动产生一些数据,为了这些数据会因为container (容器)的消失而消失,保证数据的安全,比如mysql 容器在运行中产生的一些表的数据, ...
- Python基础知识,新手入门看过来
1 下载和安装Python 在开始编程之前,你需要安装Python解析器软件(这里你可能需要找人帮忙).解析器是一个可以理解你用Python语言写的指令的程序.如果没有解析器,你的计算机不会理解这些指 ...
- 【Flutter 混合开发】添加 Flutter 到 Android Activity
Flutter 混合开发系列 包含如下: 嵌入原生View-Android 嵌入原生View-iOS 与原生通信-MethodChannel 与原生通信-BasicMessageChannel 与原生 ...
- MongoDB用户,角色管理 --- MongoDB基础用法(三)
用户管理 用户创建 MongoDB采用基于角色的访问控制(RBAC)来确定用户的访问. 授予用户一个或多个角色,确定用户对MongoDB资源的访问权限和用户可以执行哪些操作. 用户应该只有最小权限集才 ...
- DTU是什么 常见的DTU有哪些
DTU也叫数据传输终端,它的主要功能是把远端设备的数据通过无线的方式传送回后台中心,想要完成数据的传输就需要建立一套完整的数据传输系统.DTU是一种现代物联网行业广泛使用的无线数据终端,利用公用运营商 ...