导航:首页 > 编程语言 > python组合数据类型的应用实验报告

python组合数据类型的应用实验报告

发布时间:2023-02-16 17:51:48

1. python 数据类型的实现

Python3 中有六个标准的数据类型:

Number(数字)
String(字符串)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Python3 的六个标准数据类型中:

不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

2. 四、 python中的数据类型——列表

列表是一种有序的集合,有点类似c里面的数组。它的特点是,可以随时向里面添加或删除其中的元素,在python中经常用来存放数据。列表的特点是中括号,内部元素用逗号隔开。

在这个列表中,可以放进去任何元素,不论你的元素是字符串、整型、浮点型、还是布尔值、空值,包括列表什么的,都可以放进去。
元素与元素之间,用逗号隔开。

列表会为每个元素分配序号,这个序号代表它的位置,称为索引(index),第一个元素的位置是0,第二个元素是1,以此类推。

使用索引获取列表中的值时,需要使用中括号来访问,在中括号前面加上列表名,中括号内部是元素的索引。
0代表第一个元素的位置,1代表第二个,-1代表倒数第一个,-2代表倒数第二个

使用 len() 函数,可以查看列表里面有多少个元素

在python中,列表的操作是非常的灵活的,我们可以向其中添加或删除元素。
添加使用 list.append() 函数

list.append() 函数是将元素插入到列表的末尾,当我们想在特定位置插入元素时可以使用 list.insert() 函数

list.insert() 函数接受两个参数,第一个参数是插入位置,第二个参数是要插入的元素。

需要注意的是,在使用append和insert时,必须在前面注明要操作的列表。就像上面的例子,我们要操作classmates这个列表,所以必须写成 classmates.append() 或 classmates.insert() ,如果不这么写,计算机就不知道你要往哪个列表中加入元素。

没有特殊情况的话,推荐使用append()函数添加元素,因为使用append的时候,元素默认加在列表尾部,不会造成其他元素索引值的改变。如果使用insert的话,就像上面的insert(1,'Tom'),在位置1插入'Tom'后,Tom后面所有的元素,索引值都加了一个1,列表中元素越多,受影响的程度越大,因此使用append()函数要比insert()函数更快。

删除列表中元素的方法有三种

del后面需要用索引的方式表明要删除的元素,也就是上面的例子,names[1]代表names中的第二个元素,使用del即可删除

list.pop() 函数与del差不多,都是使用索引值进行删除,只不过写法不同。
我们可以发现,执行 names.pop(1) 后,python shell打印出了第二个元素的值,也就是我们要删除的那个值,这是因为 pop() 这个函数,是有返回值的,有时候我们需要使用这个值,这个时候就可以用变量存起来。

这样我们就可以通过调用a而使用刚才删掉的元素了。

list.remove() 函数的作用是删除第一个匹配的元素,上面的例子中,names这个列表里面,有两个'Bob',remove函数只删除了第一个'Bob'。这就是 list.remove() 函数的特点。

有时候我们想使用列表的前10个元素,或者前n个元素,这时候就应该使用列表的切片。

切片和索引类似,都是使用中括号,区别是,索引中的中括号里面只有一个数,而切片不同。切片是切割列表,形成切割下来的部分形成新的列表。

切片: list[start:end:[step=1]] ,这就是切片的表达式,要求start和end两者必须有一个,step不是可以不指定,不指定的时候默认为1。

切片该怎么理解呢,start就是开始的位置,end就是结束的位置。切片有个特点是“取前不取后”,看上面那个例子可以发现,1作为start,3作为end,1代表第二个元素,3代表第四个元素,列表切片的时候,是不取后面的那个数字对应的元素的,也就是不取第四个元素,所以names[1:3]只取了第二个元素和第三个元素,这就是所谓的取前不取后。

再看下一个例子。

当不指定start或者end的时候,start默认为0,end默认为最后一个元素的索引值+1,因为“取前不取后”,要想取到最后一个元素,必须加个1才行。
上例中,用 len(numbers) 表示了最后一个元素的索引值,因为索引值从0开始,最后一个元素的索引值一定是列表内元素个数-1,根据“取前不取后”,在end位置上的数字应该+1,所以最后就等于 len(numbers) 了。
当不设定start和end的时候,就默认取所有的元素了。

当加入step,这个选项后,step代表步长,默认为1,设定成2的时候,就是隔一个取一个,设定成3时就是隔两个取一个。
上例中,第一个切片,start和end均未设定,因此从第一个元素开始,隔一个取一个,得到了所有奇数位置的元素。
第二个切片,start设定为了1,因此取了所有偶数位置的元素。

3在列表中,0不在列表中,所以 3 in a 是True,而 0 in a 是False

更多关于列表的信息可以通过使用 help(list) 查看帮助文档。

3. Python3 & 基本数据类型(一)

Python提供的基本数据类型:数值(整型、浮点型、复数、布尔型等)、字符串、列表、元组、字典、集合等,将它们简单分类如下:

通常被称为整型,数值为正或者负,不带小数点。
Python 3的整型可以当做Long类型使用,所以Python 3没有
Python 2的Long类型。
Python 初始化的时候会自动建立一个小整数对象池,方便我们调用,避免后期重复生成!这是一个包含 262个指向整数对象的指针数组,范围是 -5 到 256 。

Python的浮点数就是数学中的小数,类似C语言中的double。
浮点数 也就是小数,如 1.23 , 3.14 , -9.01 等等。但是对于很大或很小的浮点数,一般用科学计数法表示,把10用e替代, 1.23x10^9 就是 1.23e9 ,或者 12.3e8 , 0.000012 可以写成1.2e-5 等等。

复数 由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示,复数的实部a和虚部b都是浮点。

对 与 错 、 0 和 1 、 正 与 反 ,都是传统意义上的布尔类型。
但在Python语言中,布尔类型只有两个值, True 与 False 。请注意,是英文单词的对与错,并且首字母要大写。
在Python中,0、0.0、-0.0、None、空字符串“”、空元组()、空列表[]、空字典{}都被当作False,还有自定义类型,如果实现了 nonzero ()或 len ()方法且方法返回0或False,则其实例也被当作False,其他对象均为True

布尔值还可以用and、or和not运算。
1)、and 运算是 与 运算,只有所有都为 True , and 运算的结果才是 True ;
2)、or 运算是 或 运算,只要其中有一个为 True , or 运算结果就是 True ;
3)、not 运算是 非 运算,它是单目运算符,把 True 变成 False,False 变成 True。
例如:

由以上案例可以看出,在做四则运算的时候,明显把 True 看做 1 , False 看做 0 。

4)空值
空值不是布尔类型,只不过和布尔关系比较紧密。
空值是Python里一个特殊的值,用 None 表示(首字母大写)。None不能理解为0,因为0是整数类型,而None是一个特殊的值。None也不是布尔类型,而是NoneType。

在某些特定的情况下,需要对数字的类型进行转换。
Python提供了内置的数据类型转换函数:
int(x) 将x转换为一个整数。如果x是一个浮点数,则截取小数部分。
float(x) 将x转换成一个浮点数。
complex(x) 将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y): 将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。

Python字符串即可以用单引号也可以用双引号括起来,甚至还可以用三引号括起来,字符串是以''或""括起来的任意文本。
例如:'abc',"xyz"等等。请注意,''或""本身只是一种表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c这3个字符。如果'本身也是一个字符,那就可以用""括起来,比如"I'm OK"包含的字符是I,',m,空格,O,K这6个字符。
字符串中包括特殊字符,可以用转义字符来标识
但是字符串里面如果有很多字符都需要转义,就需要加很多,为了简化,Python还允许用r''表示''内部的字符串默认不转义
例如:
print r'\ \' #输出:\ \

字符串的一些常见操作

切⽚是指对操作的对象截取其中⼀部分的操作
语法:序列[开始位置下标:结束位置下标:步⻓]
a. 不包含结束位置下标对应的数据, 正负整数均可;
b. 步⻓是选取间隔,正负整数均可,默认步⻓为1。

find():检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则返回-1。
index():检测某个⼦串是否包含在这个字符串中,如果在返回这个⼦串开始的位置下标,否则则报异常。
rfind(): 和find()功能相同,但查找⽅向为右侧开始。
rindex():和index()功能相同,但查找⽅向为右侧开始。
count():返回某个⼦串在字符串中出现的次数。

replace():替换
split():按照指定字符分割字符串。
join():⽤⼀个字符或⼦串合并字符串,即是将多个字符串合并为⼀个新的字符串。
capitalize():将字符串第⼀个字符转换成⼤写。
title():将字符串每个单词⾸字⺟转换成⼤写。
lower():将字符串中⼤写转⼩写。
upper():将字符串中⼩写转⼤写。
lstrip():删除字符串左侧空⽩字符。
rstrip():删除字符串右侧空⽩字符。
strip():删除字符串两侧空⽩字符。
ljust():返回⼀个原字符串左对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串。
rjust():返回⼀个原字符串右对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串,语法和
ljust()相同。
center():返回⼀个原字符串居中对⻬,并使⽤指定字符(默认空格)填充⾄对应⻓度 的新字符串,语
法和ljust()相同。

所谓判断即是判断真假,返回的结果是布尔型数据类型:True 或 False。

startswith():检查字符串是否是以指定⼦串开头,是则返回 True,否则返回 False。如果设置开
始和结束位置下标,则在指定范围内检查。
endswith()::检查字符串是否是以指定⼦串结尾,是则返回 True,否则返回 False。如果设置开
始和结束位置下标,则在指定范围内检查。
isalpha():如果字符串⾄少有⼀个字符并且所有字符都是字⺟则返回 True, 否则返回 False。
isdigit():如果字符串只包含数字则返回 True 否则返回 False。
isalnum():如果字符串⾄少有⼀个字符并且所有字符都是字⺟或数字则返 回 True,否则返回
False。

4. python第六讲:组合数类型

定义:集合是多个元素的无序组合

特点:集合类型与数学中的集合概念一致,几何元素之间无序、每个元素唯一、不存在相同元素,几何元素不可更待、不能存在可变数据类型。

非可变数据类型:整数、浮点数、复数、字符串类型、元组类型等

表示:{},元素间用,分隔

建立:{} 或者set{},建立空集合必须使用set{}

举例:

基本操作符:

增强操作符:

实例:

A-B
{123}

B-A
{'3','1','2'}

A&B

{'p','y'}

A|B

{'1','p','2','y','3',123}

A^B

{'2',123,'3','1'}

p123y

A

set()

1.包含关系比较:

True

False

2.数据去重

{'p','y',123}

['p','y',123]

定义:序列是具有先后关系的一组元素

特点:序列是一维元素向量,元素类型可以不同,元素可以相同:类似数学元素序列:元素间有序列引导,通过下标访问序列的特定元素

序列是一个基类类型,衍生为:字符串类型、元组类型、列表类型

序号的定义:正向递增序号、反向递减序号,与字符串中相似。

['.io',123,'python']

'oi.321nohtyp'

序列类型的通用函数和方法:

3

'y'

定义:元组类型是序列类型的一种扩展,一旦创建就不能修改

形式:元组使用()或者tuple()创建,元素之间用逗号分隔:小括号使不使用都可以。

举例:

('cat','dog','tiger','human')

(4352,'bule',('cat','dog','tiger','human'))

元组类型继承序列类型全部通用操作:操作符、处理函数、处理方法

元组类型创建后不能修改,因此没有特殊操作

('human','tiger',dog','cat')

'tiger'

定义:列表是序列类型的一种扩展,创建后其中的元素可以被随意修改

使用:[]或者list()创建,元素间可以用逗号隔开,列表中各元素类型可不同,无长度限制

['cat','dog','tiger',1024]

['cat','dog','tiger',1024]

列表类型操作函数及其方法:

['cat',1,2,3,4,'tiger',1024]

修改列表:

练习:

序列:元组和列表两种重要类型

应用场景:元组用于元素不改变的场景,更多用于固定搭配场景:列表更加灵活,它是最常用的序列类型

作用:表达一组有序数据并且处理问题;数据保护

元素遍历:

元组类型:

数据保护:不希望数据被程序所改变,转换成元组类型

('cat',1,2,3,4,'tiger',1024)

基本统计值需求:给出一组数并且理解

定义:总个数、求和、平均值、方差、中位数...

总个数:len()

求和:for...in

平均值:求和/总个数

方差:各数据与平均数差的平方的和的平均数

中位数:排序,然后... 奇数找中间一个,偶数中间两个的平均

映射:是一种索引和数据的对应关系,也是键和值的对应关系。

映射类型:由用户数据为定义索引

字典类型:数据的组织与表达的一种新的形态,是映射的体现。

键值对:键是数据索引的扩展,字典是键值对的集合,键值对间无序。

生成:{}和dict()创建,键值对之间用冒号:表示

举例:{<键1>:<值1>,<键2>:<值2>,...,<键n>:<值n>}

在字典变量中,通过键获得值:

<字典变量>={<键1>:<值1>,...,<键n>:<值n>}

<值>=<字典变量>[<键>]

<字典变量>[<键>]=<值>

用[]来向字典中增加或者索引键值对

举例:

'北京'

生成空字典:

de={};type(de)

<class 'dict'>

type(x) 返回变量x的类型

举例:

True

dict_keys(['中国','美国','法国])

dict_values(['北京','华盛顿','巴黎'])

实例:

'北京'

'伊斯兰堡'

('中国','北京')
练习:

1.映射的表达:映射无处不在,键值对也无处不在,统计数据出现的次数,数据是键,次数是值。

字典的主要作用:表达键值对的数据进而操作他们

2.元素遍历:

for k in d:

​ <语句块>

定义:jieba库是优秀的第三方中文分词库,需要额外安装

安装方法:(cmd命令下)pip install jieba

作用:利用中文词库确定汉字间的关联概率,字间概率大的组成词组,形成分词效果,用户还可以向其中自定义的添加词组。

分类:精确模式、全模式、搜索引擎模式

精确模式:将词组精确的分开,不存在冗余单词

全模式:将所有可能的词组都扫描出来,有冗余

搜索引擎模式:在精确模式的基础上,将长词再次切分

举例:

['中国','是','一个','伟大','的','国家']

['中国','国是','一个','伟大','的','国家']

['中华','华人','人民','共和','共和国','中华人民共和国','是','伟大','的']

需求:一篇文章中出现的词的频率统计

分类:英文文本,中文文本

举例:

英文:哈姆雷特(hamlet)

中文:三国演义(threekingdoms)

5. Python 数据模型

Python 风格的关键完全体现在 Python 的数据模型上,数据模型所描述的 API ,为使用最地道的语言特性来构建开发者自己的对象提供了工具。

当 Python 解析器遇到特殊句法时,会使用特殊方法去激活一些基本的对象操作。特殊方法以双下划线开头,以双下划线结尾。如: obj[key] 的背后就是 __getitem__ 方法。魔术方法是特殊方法的昵称,特殊方法也叫双下方法。

使用 __getitem__ 和 __len__ 创建一摞有序的纸牌:

上面的例子,使用 collections.namedtuple 构建了一个简单的类来表示一张纸牌, namedtuple 用以构建只有少数属性但没有方法的类。

我们自定义的 FrenchDeck 类可以像任何 python 标准集合类型一样使用 len() 函数,查看一叠牌有多少张:

也可以像列表一样,使用位置索引, d[i] 将调用 __getitem__ 方法:

也可以使用标准库模块提供的 random.choice 方法,从序列中随机选取一个元素。下面,我们如随机取出一张纸牌:

现在我们已经体会到通过 python 特殊方法,来使用 Python 数据模型的 2 个好处:

因为 __getitem__ 方法把 [] 操作交给了 self.cards 列表,所以我们的 FrenchDeck 实例自动支持切片:

仅仅实现了 __getitem__ 方法,这一摞牌即变得可迭代:

运行结果:

也可以直接调用内置的 reversed 函数,反向迭代 FrenchDeck 实例:

运行结果:

迭代通常是隐式的,比如一个集合类型没有实现 __contains__ 方法,那么 in 运算符就会按顺序做一次迭代搜索。

因此, in 运算符可以用在我们的 FrenchDeck 实例上,因为它是可迭代的:

FrenchDeck 还可以使用 Python 标准库中的 sorted 函数,实现排序:

首先定义一个排序依据的函数:

优先按 rank 的大小排序,rank 相同时则比较 suit 的值:

运行结果:

优先按 suit 的大小排序,suit 相同时则比较 rank 的值:

运行结果:

按照目前的设计,FrenchDeck 还不支持洗牌,因为它是不可变的:

shuffle 函数要调换集合中元素的位置,而 FrenchDeck 只实现了不可变的序列协议,可变的序列还必须提供 __setitem__ 方法:

洗牌:

没有任何的返回值,可见 random.shuffle 就地修改了可变序列 d 。为便于观察结果,我们定义输入的输出函数:

运行结果:

每次洗牌,都是一个随机的序列:

首先明确一点,特殊方法的存在是为了被 Python 解析器调用的,例如:我们不会使用 obj.__len__() 这种写法,而是 len(obj) 。在执行 len(obj) 时,如果 obj 是一个自定义类的对象,那么 Python 会自己去调用我们实现的 __len__ 方法。

对于 Python 内置的数据类型,比如列表、字符串、字节序列等,那么 CPython 会抄个近路, __len__ 实际上会返回 PyVarObject 里的 ob_size 属性,这是因为直接读取属性比调用一个方法要快得多。

很多时候,特殊方法的调用是隐式的,比如 for i in x: 这个语句其实是调用 iter(x) ,而这个函数的背后是 x.__iter__() 方法。

通过内置函数如来使用特殊方法是最好的选择。这些内置函数不仅会调用这些方法,通常还提供额外的好处,对于内置类型来说,它们的速度更快。

下面,我们通过定义一个简单的二维向量类,再来体会一下 Python 特殊方法的美妙:

使用 Vector 类,就像使用 Python 内置的数据类型一样简单:

6. Python中的几种特殊数据类型小结

下面介绍了Python中的6种特殊数据类型:

1.list:列表

是一种有序的数据集合,在列表数据结构中的类型并不唯一

定义形式:L=['Micha',100,True]

输出整个列表的时候显示为['Micha',100,True]

输出单个的数值则为:Micha

a.访问,直接使用L[0]表示第一个元素或者使用L[-1]表示最后一个数据,以此类推,但是注意访问不能越界(访问的序号不能超过元素的总数)。

b.添加新元素:使用L.append(100)直接将100加入列表末尾,或者使用L.insert(0,'paul')将paul插入任意位置。

c.删除元素:L.pop()删除最后一个元素,或者L.pop(2)删除第2个位置的元素。

d.替换元素:直接赋值就可以了L[2]=100

2.tuple:元组

是一种有序的列表,但是其一旦创立完毕就不能够更改,即不能插入,删除里面的元素,访问的方式跟List结构一致。

a.t=()其打印后输出的形式是()

若t中的数据为一个数字则需要在后面加逗号,以区分普通数字,如t=(1,),打印出(1,)而非1,多元素的话则没有这个要求。

b.可以在不变的tuple中加入可变的List如t=(‘a’,'b',['A','B'])

3.dict:字典

d = {

'Adam': 95,

'Lisa': 85,

'Bart': 59

}

len()函数可以计算任意集合的大小

其中可以简单地使用d[key]的形式来查找对应的value,这和list很像,不同之处是,list必须使用索引返回对应的元素,而dict使用key,当key不存在的时候,使用该key可能出现错误,因此:要避免KeyError发生,有两个办法:

一是先判断一下key是否存在,用in操作符:

if'Paul' in d:

print d['Paul']

如果'Paul'不存在,if语句判断为False,自然不会执行print d['Paul'],从而避免了错误。

二是使用dict本身提供的一个get方法,在Key不存在的时候,返回None:

>>>print d.get('Bart')

59

a.dict中的key不能重复,且dict中的存储的对应值没有顺序,打印出的东西可能是无序的

b.dict的更新:使用d[‘paul']=72求解

c.dict遍历:

d = {'Adam': 95, 'Lisa': 85, 'Bart': 59 }

>>>for key in d:

...print key

遍历只能获得key的值,需要通过key值获得对应的value

4.set:集合

无序但是所有元素唯一,不重复

a.定义:s = set(['A', 'B', 'C']),查看set的内容:

>>>print s

set(['A','C', 'B'])

可以用in来判断是否存在于集合中

b.遍历

s =set([('Adam', 95), ('Lisa', 85), ('Bart', 59)])

for xin s:

print x[0]+':',x[1]

c.添加元素到集合中

s.add(4)

d.删除元素

s.remove(4)若该元素不在集合中将会报错

5.Unicode编码

Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如:

printu'中文'

注意:不加u,中文就不能正常显示中文。

a.转义形式:u'中文 日文 韩文'

b.输出多行:

u'''第一行

第二行'''

c.raw+多行的形式:

ur'''Python的Unicode字符串支持"中文",

"日文",

"韩文"等多种语言'''

如果中文字符串在Python环境下遇到UnicodeDecodeError,这是因为.py文件保存的格式有问题。可以在第一行添加注释

# -*-coding: utf-8 -*-

目的是告诉Python解释器,用UTF-8编码读取源代码。然后用Notepad++另存为, 并选择UTF-8格式保存。

6.raw的作用

如果一个字符串包含很多需要转义的字符,对每一个字符都进行转义会很麻烦。为了避免这种情况,我们可以在字符串前面加个前缀r,表示这是一个“raw”字符串,里面的字符就不需要转义了。例如:

r'(~_~)//'

但是r'...'表示法不能表示多行字符串,也不能表示包含'和"的字符串,如果要表示多行字符串。

7. python中不可变的组合数据类型

Python中:

不可变数据类型:immutable,如数字、元组、字符串
可变数据类型:mutable,如列表、集合、字典
可以使用id()的进行查看(id()用来返回数据的内存地址)
可变和不可变说的是变量的值和变量引用的内存地址
不可变数据类型,变量值变化,变量引用地址就会变化,即该地址的值不变
可变数据类型,变量值变化,变量引用地址不变,即该地址的值可变

8. 计算机二级python

一、 题型及分值分布

1. 单选题共40道,1到10题为公共基础知识,11到40题是python相关的知识,比如数据结构与算法、python基础知识。每道题1分,共40分;

2. 基础编程题共3道,题目会给一部分写好的代码,描述它的作用,然后填补空缺处的代码,使程序能正常运行。每题5分,共15分;

3. 简单应用题共2道,一道是利用turtle画出图形,一般以代码补全的方式出现,给出大部分代码,填写剩余的两三行。另一道难度稍大些,也是填写代码,具体题目类型看情况而定,一般要填三四行。前者10分,后者15分,共25分;

4. 综合应用题共1道,一般是对分词排序、文件读写或管理,要求完整写出整个程序,并能够运行成功输出题目要求的结果。要步骤给分,共20分。

4. 函数的编写与运用

会编写def自定义函数,会用return返回值。知道函数的参数分类以及用法,并能区分局部变量与全局变量的作用范围。

5. 组合数据类型

会运用列表,能对列表进行一些基础操作。了解元组、集合与字典,并会运用到程序中。熟知一些列表操作、集合操作或者字典操作的专用python函数。

6. 文件操作

知道文件打开、关闭与读写的基本函数,掌握并会运用。能对一维、二维数据进行处理表达,会采用CSV格式对它们进行读写。

7. python库

了解turtel库、random库、time库、jieba库、pyinstaller库以及一些第三方库的相关函数,会安装需要的库并运用到程序编写中。

9. python食谱组合的实验目的

1、python食谱组合的实验目的是了解 Python 的基本编程环境,熟悉其主要组成部分和使用。
2、熟悉 turtle 库语法元素,了解其绘图坐标体系、画笔控制函数和运动命令函数。通过程序实例,初步掌握 Python 程序设计的基本概念、编程规则和开发过程。
3、掌握 Python 的基本数据类型的概念和使用;运用 Python 的标准数学库进行数值计算;掌握字符串类型的格式化操作方法和应用。

10. 二级Python----组合数据类型(DAY 5)

1.集合类型概述

Python语言中的集合类型与数学中的集合概念一致,即包含0个或多个数据项的无序组合。

集合是无序组合,用大括号{}表示,它没有索引和位置的概念,集合中元素可以动态增加或删除。

由于集合元素独一无二,使用集合类型能够过滤掉重复元素。

集合类型有4个操作符,交集&、并集|、差集-、补集^,操作逻辑与数学定义相同

集合类型有一些常用的操作函数或方法

set()函数将其他的组合数据类型变成集合类型,返回结果是一个无重复且排序任意的集合。set()函数也可以生成空集合变量。

列表类型用中括号[]表示,也可以通过list(x)函数将集合或字符串类型转换成列表类型。

列表属于序列类型,所以列表类型支持序列类型对应的操作

1.序列类型有一些通用的操作符和函数

2.列表的索引

索引是列表的基本操作,用于获得列表的一个元素。使用中括号作为索引操作符。

可以使用遍历循环对列表类型的元素进行遍历操作,

基本使用方式如下

3.列表的切片

切片是列表的基本操作,用于获得列表的一个片段,即获得一个或多个元素。切片后的结果也是列表类型。

切片的使用方式:

切片获取列表类型从N到M(不包含M)的元素组成新的列表。当K存在时,切片获取列表类型从N到M(不包含M)以K为步长所对应元素组成的列表。

1.列表的操作方法

ls.append(x)仅用于在列表中增加一个元素,如果希望增加多个元素,可以使用加号+,将两个列表合并。

可以使用Python保留字del对列表元素或片段进行删除。

如下:



使用索引配合等号(=)可以对列表元素进行修改。

补:元组

Python的元组与列表类似,不同之处在于元组的元素不能修改。

元组使用小括号(),列表使用方括号。

元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可。

Python语言中的字典使用大括号{}建立,每个元素是一个键值对。

使用方式:

键和值通过冒号连接,不同键值对通过逗号隔开。大括号可以表示集合,字典类型也具有和集合类似的性质,即键值对之间没有顺序且不能重复。

•字典的索引

列表类型采用元素顺序的位置进行索引。由于字典元素“键值对”中键是值的索引,因此,可以直接利用键值对关系索引元素。

利用索引和赋值 = 配合,可以对字典中每个元素进行修改。

使用大括号可以创建字典。通过索引和赋值配合,可以向字典中增加元素。

字典类型有一些通用的操作函数

字典类型存在一些操作方法

d.keys()返回字典中的所有键信息,返回结果是Python的一种内部数据类型dict_keys,专用于表示字典的键。如果希望更好的使用返回结果,可以将其转换为列表类型。

d.values()返回字典中的所有值信息,返回结果是Python的一种内部数据类型dict_values。如果希望更好的使用返回结果,可以将其转换为列表类型。

d.items()返回字典中的所有键值对信息,返回结果是Python的一种内部数据类型dict_items。

d.get(key, default)根据键信息查找并返回值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。

d.pop(key, default)根据键信息查找并取出值信息,如果key存在则返回相应值,否则返回默认值,第二个元素default可以省略,如果省略则默认值为空。相比d.get()方法,d.pop()在取出相应值后,将从字典中删除对应的键值对。

d.popitem()随机从字典中取出一个键值对,以元组(key,value)形式返回。取出后从字典中删除这个键值对。

d.clear()删除字典中所有键值对。

此外,如果希望删除字典中某一个元素, 可以使用Python保留字del。

字典类型也支持保留字in,用来判断一个键是否在字典中。如果在则返回True,否则返回False。

字典可以遍历循环对其元素进行遍历

for循环返回的变量名是字典的索引值。如果需要获得键对应的值,可以在语句块中通过get()方法获得。

阅读全文

与python组合数据类型的应用实验报告相关的资料

热点内容
usb蓝牙android 浏览:405
服务器显示error1什么意思 浏览:708
python代码精简 浏览:457
文件加密了怎么找到了 浏览:193
jellyfin插件怎么选择主服务器 浏览:836
asp用户注册源码 浏览:48
什么是照片压缩文件 浏览:392
java调用js代码 浏览:979
昆山市民app怎么修改身份信息 浏览:779
php登陆次数 浏览:744
python字符转成数字 浏览:822
海川用的是什么服务器 浏览:376
口才是练出来的pdf 浏览:458
云服务器哪个公司性价比高 浏览:517
源码论坛打包 浏览:558
php怎么做成word 浏览:692
python批量生成密钥 浏览:492
程序员要不要考社区人员 浏览:150
app的钱怎么充q币 浏览:814
android银行卡识别 浏览:756