一、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 [, ...
随机推荐
- spring boot:使用多个线程池实现实现任务的线程池隔离(spring boot 2.3.2)
一,为什么要使用多个线程池? 使用多个线程池,把相同的任务放到同一个线程池中,可以起到隔离的作用,避免有线程出错时影响到其他线程池,例如只有一个线程池时,有两种任务,下单,处理图片,如果线程池被处理图 ...
- centos8环境安装配置rsync
一,查看本地centos的版本: [root@localhost lib]# cat /etc/redhat-release CentOS Linux release 8.1.1911 (Core) ...
- docker-docker-compose 安装
1.安装docker-compose(官网:https://github.com/docker/compose/releases) 安装: curl -L https://github.com/doc ...
- linux磁盘空间满了
df-h 看到根目录已经用满了! find / -size +100M |xargs ls -lh列出系统内大于100M的文件 du --max-depth=1 -h 查看当前目录内文件夹的大小 看一 ...
- COMET —— 常识Transformer用于自动知识图构建
<COMET:Commonsense Transformers for Automatic Knowledge Graph Construction> 论文地址 论文源码 任务 目的层面 ...
- Vue踩坑日记-You may use special comments to disable some warnings. Use // eslint-disable-next-line to ignore the next line. Use /* eslint-disable */ to ignore all warnings in a file.
记录时间:2019年4月24日16:55:54 在build/webpack.base.conf.js文件中,注释或者删除掉:module->rules中有关eslint的规则
- 一文带你趟过mac搭建appium测试环境的遇到的坑
做UI自动化,最难的一步就是在环境搭建上,怎么去搭建一个UI自动化测试的环境,会难住很多人,在Mac上搭建appium如何搭建呢,本文带着大家去领略如何在mac上搭建appium测试环境.下面就是详细 ...
- 万字长文深入理解java中的集合-附PDF下载
目录 1. 前言 2. List 2.1 fail-safe fail-fast知多少 2.1.1 Fail-fast Iterator 2.1.2 Fail-fast 的原理 2.1.3 Fail- ...
- open_spiel 随笔
------------恢复内容开始------------ ------------恢复内容开始------------ 遇到的一些疑惑且已经解决的 1. SPIEL_CHECK_GT()诸如此类的 ...
- D. Kilani and the Game 解析(裸BFS、實作)
Codeforce 1105 D. Kilani and the Game 解析(裸BFS.實作) 今天我們來看看CF1105D 題目連結 題目 給一個\(n\times m\)的地圖,地圖上有幾種格 ...