一、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 [, ...
随机推荐
- swoft根据表创建实体
php bin/swoft entity:gen table= table1,table2,table3,... [root@localhost swoft]# php bin/swoft entit ...
- spring boot:多模块项目生成jar包(spring boot 2.3.3)
一,多模块项目的优点: 1,为什么要使用多模块项目? 相比传统的单体工程,使用Maven的多模块配置, 有如下优点: 帮助项目划分模块,鼓励重用, 防止POM变得过于庞大, 方便某个模块的构建,而不用 ...
- git merge 与 git rebase的区别?
一,git merge 与 git rebase的区别 1,git merge 例如: master分支合并dev分支,git将两个分支dev和master上的所有commit , 按照提交时间的先后 ...
- linux(centos8):用sort对文本内容排序
一,sort的用途 1,作用: sort命令用于将文本文件内容加以排序. 它能够以行为单位来排序 2,sort常与uniq搭配使用,原因: 用uniq命令去重时, 需要相同的每行位置相邻才能生效, 所 ...
- centos8平台用NetworkManager/nmcli管理网络
一,centos8上,网络服务的管理需要NetworkManager服务 1,NetworkManager的服务操作 启动 [root@localhost network-scripts]# syst ...
- MVC注册
前言 最近没什么写的,写个MVC注册巩固一下 HTML @{ Layout = null; } <!DOCTYPE html> <html> <head> < ...
- Zookeeper(2)---节点属性、监听和权限
之前通过客户端连接之后我们已经知道了zk相关的很多命令(Zookeeper(1)---初识). 节点属性: 现在我们就通过stat指令来看看节点都有哪些属性,或者使用get 指令和-s参数来查看节点数 ...
- Windows定时任务copy到nfs目录
@echo off mount 192.168.5.10:/data/test x: xcopy /y "D:\backup\mysql\20200316_230000.sql.tar.gz ...
- CodeForces 1182E Product Oriented Recurrence
题意 给定五个整数 \(n,f_1,f_2,f_3,c\),其中数列 \(f\) 满足以下递推式: \[f_x=c^{2x-6}f_{x-1}f_{x-2}f_{x-3} \] 求 \(f_n\). ...
- CodeForces 916D Jamie and To-do List
题意 你需要维护一个任务列表,有 \(q\) 次操作,每次操作形如以下四种: set a x:设置任务 \(a\) 的优先级为 \(x\),如果任务列表中没有 \(a\) 则加进来. remove a ...